Я хотел бы использовать встроенную защиту с моим внутренним приложением, которое находится в домене. К сожалению, я никогда не мог заставить это работать хорошо. Я хотел бы назначить всей группе Exchange (Active Directory) роль в SQL Server для доступа на чтение / запись к определенным таблицам. Таким образом, мне не нужно было бы создавать оператора, когда кого-то нанимали, или удалять оператора, когда кого-то увольняли. Это возможно? Какие шаги я бы предпринял, чтобы сделать это?
sql-server
sql-server-2008
security
role
active-directory
Майкл Хедгпет
источник
источник
Предоставление разрешений в пределах SQL Server группе AD является относительно простым. Это можно сделать либо через T-SQL, либо через Management Studio.
Например, если у вас вызвана группа AD
MYDOMAIN\APPLICATION SUPPORT
, вы должны создать имя входа на уровне сервера, а затем использовать сопоставления с отдельными базами данных, чтобы предоставить немного более детальные разрешения, такие как средство чтения данных.В идеале доступ ко всем приложениям должен осуществляться через хранимые процедуры *, поэтому требуются только разрешения на выполнение этих хранимых процедур в этой базе данных.
* С точки зрения безопасности, чтобы позволить конкретному пользователю видеть некоторые данные конкретные, вы можете создать процедуру и предоставить пользователю выполнить разрешение на эту процедуру, и ничего другого. Разрешение пользователю делать запросы напрямую означало бы предоставление разрешения на выборку для всех задействованных таблиц. Также проще работать с процедурами и легче отлаживать.
Хранимые процедуры абстрагируют доступ к таблице и ограничивают доступ. Для типов DBA это как «позвольте мне увидеть все переменные вашего экземпляра: я не хочу использовать методы, методы получения или установки».
источник
От marc_s, отвечающего «Как добавить группу пользователей Active Directory в качестве входа в SQL Server» :
В SQL Server Management Studio перейдите
Object Explorer > (your server) > Security > Logins
и щелкните правой кнопкой мышиNew Login
:Затем в появившемся диалоговом окне выберите типы объектов, которые вы хотите видеть (
Groups
по умолчанию отключено - отметьте это!) И выберите место, где вы хотите искать свои объекты (например, используйтеEntire Directory
), а затем найдите свою группу AD. ,Теперь у вас есть обычная учетная запись SQL Server - точно так же, как при создании учетной записи для одного пользователя AD. Дайте этому новому логину права доступа к нужным базам данных - и все!
Любой член этой группы AD теперь может войти в SQL Server и использовать вашу базу данных.
источник
Если пользователь является членом группы DOMAIN \ SecurityGroup с полномочиями Sysadmin в SQL, он будет использоваться при доступе к базам данных. В противном случае вам нужно посмотреть, какие домены \ SecurityGroup предоставили полномочия в каждой базе данных. Если пользователь является членом 2 групп безопасности, причем SecGroupA имеет полномочия выбора, а SecGroupB - полномочия вставки, пользователь может выбирать и вставлять.
источник