Вы не должны смешивать пользователей и логины. Их следует рассматривать как отдельные таблицы / объекты. Одна роль в одной компании может не совпадать с другой.
Также не создавайте таблицу разрешений с одним столбцом для каждого возможного разрешения. Вместо этого вы должны создать одну строку для каждого разрешенного разрешения. (и при необходимости одна таблица, определяющая все разрешения)
Следовательно, у вас должны быть такие таблицы:
USER_ACCOUNT (используется для определения логинов)
USER
- Id
- AccountId (учетная запись используется для входа в систему)
- CompanyId (компания, к которой принадлежит пользователь)
РАЗРЕШЕНИЯ
USER_ALLOWED_PERMISSIONS
При входе в систему просто проверьте таблицу USER, если для учетной записи возвращено более одной строки, и при необходимости отобразите форму выбора пользователя.