Я создаю экземпляр 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, если ему нужна информация на уровне пользователя, это очень незначительная проблема.