Назад | Перейти на главную страницу

Управление пользователями SQL Server через группы Active Directory

Я создаю экземпляр SQL Server для отчетов. Я планирую использовать группы AD для входа на сервер и в базу данных. У меня есть несколько групп с разными ролями (администратор, разработчик, пользователь и т. Д.), И я хотел бы сопоставить эти роли с ролями базы данных SQL Server (db_owner, db_datawriter и т. Д.). Каковы плюсы и минусы использования групп AD для входа в систему? Какие проблемы вы заметили?

Я не думаю, что есть какие-то минусы, кроме накладных расходов, связанных с управлением AD в первую очередь. Использование учетных данных Windows для входа в SQL Server, особенно в той манере, о которой вы говорите с организованными группами ролей, безусловно, является передовой практикой от Microsoft. Если бы у них был свой путь, они бы полностью отказались от аутентификации SQL Server.

Дополнение:

Если вы используете SQL 2005 или выше, используйте вариант схемы по умолчанию (не думайте, что для этого есть вариант с графическим интерфейсом пользователя):

ALTER USER userName  
     WITH <set_item> [ ,...n ]

<set_item> ::= 
     NAME = newUserName 
     | DEFAULT_SCHEMA = schemaName
     | LOGIN = loginName

то есть:

ALTER USER DOMAIN\UserName DEFAULT_SCHEMA = dbo;
GO

Управление группами Active Directory также может быть делегировано администраторам, не являющимся администраторами Active Directory, что может быть удобной функцией, за исключением инструмента управления приложениями.

Самый большой обман, с которым я столкнулся, - это сторонние приложения, которые не поддерживают аутентификацию AD и настаивают на использовании аутентификации SQL, обычно с творческими логинами, такими как admin / admin; кроме этого, единственная другая проблема заключается в том, что у вас нет полной видимости на сервере SQL того, кто имеет доступ к базам данных, вы видите только группу или пользователей, когда они активны, или если они владеют объектами. Но пока ваш администратор баз данных имеет доступ к Active Directory, если ему нужна информация на уровне пользователя, это очень незначительная проблема.