Управление пользователями в MSSQL - PullRequest
2 голосов
/ 24 августа 2010

Я пытаюсь настроить безопасность своего приложения для пользователей. Я не уверен в моей логике. Возможно ли следующее:

Я хочу создать 1 логин для «всех пользователей» в Active Directory. Затем я хочу, чтобы администратор (в самой программе) выбрал, какой пользователь в какой роли сервера (например, маркетинг, продажи, ...). Затем я хочу дать этим ролям разрешения для таблиц в базе данных.

Некоторые вопросы по этому поводу:

  • Это безопасно? Админ программы должен быть владельцем db?
  • Можно ли перечислить пользователей по имени, вместо имени «Все пользователи», администратор должен иметь возможность назначить пользователя в роли после его создания в объявлении.
  • Я использую функцию SUSER_NAME (), будет ли возвращать текущего пользователя или имя группы «Все пользователи»

Если это не правильный способ обеспечения безопасности, отправьте меня в правильном направлении.

Thanx!

Ответы [ 2 ]

0 голосов
/ 09 ноября 2010

Часть лучшего решения уже заключается в вашем желании использовать Active Directory для аутентификации ваших пользователей.Пусть это авторизует и ваших пользователей.Маркетинг - это не просто роль базы данных, которая определяет доступ к вашим таблицам.Это отдел вашей компании с общими файлами, списками рассылки, а также ролью в вашем приложении.Попросите администратора домена создать группу объявлений под названием «Маркетинг» и разрешите им добавлять и удалять пользователей по мере необходимости.Аналогично для отдела продаж и других отделов, которые касаются вашей базы данных.

Когда это будет сделано, добавьте группу MYDOMAIN \ Marketing как логин на вашем сервере и как пользователь вваша база данных .Он будет вести себя примерно так же, как и роли, которые вы описали, так что вы можете продолжать создавать роли, добавлять эту доменную группу к роли и предоставлять роль или предоставлять этому пользователю напрямую, поскольку она идентифицирует группу людей.Это также дает вам возможность пересмотреть определения вашей роли.На самом ли деле они занимаются вопросами маркетинга и продаж или являются ролями CustomerEditor, CustomerViewer, ProfitAndLossViewer?

Управление пользователями и группами является стандартной функцией администрирования AD;пусть они делают то, что делают лучше всего.Возможно, вам не нужно слишком сильно использовать его в вашем решении, если только вы не получаете очень плохой сервис от администраторов домена, и в таком случае зачем использовать AD для управления пользователями?

Это очень небольшое изменение, вероятно, бесплатнотратить много времени на разработку и освободить вас от переизобретения средства управления пользователями, которое уже существует и которым легко пользоваться.

Удачи!

0 голосов
/ 24 августа 2010

вот что я хотел бы сделать:

создать две роли в базе данных: один пользователь, один администратор.затем создайте две группы безопасности в объявлении: SQL.App.Admin, SQL.App.Users (замените приложение на любое имя вашего приложения).Затем я бы назначил эти группы ролям в базе данных.после этого вы можете удалить пользователей и / или группы безопасности в эти две группы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...