Cita: No me queda más remedio que incluir esas 150 opciones ¿de qué manera si no puedo hacerlo?
Respondiendo rápidamente, no son 150 campos, sino tres tablas: usuarios, permisos y usuarios_permisos, donde la última tabla tendrá como máximo 150 registros por usuario.
En un simple SELECT podrías obtener el listado completo de permisos de un usuario, o de todos los usuarios.
En general no se hace tampoco así, sino que creas una tabla de perfiles, que relacionas con una cantidad determinada de permisos o roles. Luego solamente relacionas al usuario con un perfil y todos los permisos se asignan directamente. Eso además te permite cancelar o agregar permisos en una capa más profunda de la aplicacion, y evita que a un usuario se le asignen permisos que no correspondan a su perfil.
¿Se entiende la idea?
Estudia el concepto de PERFIL, y ROL. Eso te ayudará.