Мне нужна помощь в понимании различий между аутентификацией Windows и SQL Server:
У нас есть SQL Server 2008, настроенный на SQL Server и режим проверки подлинности Windows.
Есть один пользователь A / D - munis - который может войти в наш SQL Server. У этого пользователя также есть логин в SQL Server с ролями Public и Sysadmin.
Есть еще один пользователь - cnorton - который не может войти в SQL Server и не имеет локального входа в SQL Server.
Я думал, что проверка подлинности Windows позволяет пользователям A / D (домена) входить в SQL Server. Пользователь cnorton имеет больше прав A / D, чем пользовательские munis, такие как Domain Admin и Sysadmin.
Итак, мой вопрос: требуется ли для режима аутентификации Windows и SQL Server локальный вход в SQL Server и почему?
Нет, очевидно, что смешанный режим не требует обоих - он требует одного.
Ваша ошибка заключается в том, что вы думаете, что учетные данные AD автоматически разрешить доступ к SQL серверу; они этого не делают, вы все равно должны ПРЕДОСТАВИТЬ этот доступ. В противном случае, как бы Sql Server узнал, какой у них доступ?
Создайте новый логин для DOMAIN \ cnorton и сопоставьте пользователя с некоторыми базами данных.
CREATE LOGIN 'DOMAIN\cnorton' FROM WINDOWS
GO
GRANT ALL PRIVILEGES ON YourDatabase To 'DOMAIN\cnorton'
GO
В качестве альтернативы вы можете добавить этого пользователя к фиксированной роли базы данных:
USE YourDatabase
GO
ALTER ROLE db_owner ADD MEMBER 'DOMAIN\cnorton'
Вам по-прежнему нужно создать логин на сервере SQL для пользователя AD cnorton, но вам не нужно создавать для него пароль.
В SSMS выберите нужный экземпляр сервера, а затем в разделе «Логины» щелкните правой кнопкой мыши и нажмите «Новый вход ...»
В диалоговом окне вы можете нажать кнопку поиска и выполнить поиск в экземпляре AD по именам:
Как видите, в этом случае я выбрал тестового пользователя из своего экземпляра AD. Этот пользователь сможет входить в SSMS или устанавливать соединения на основе разрешений SQL Server, которые вы предоставляете этому логину, просто войдя в Windows с этим пользователем.
SQL Server - это приложение. Проверка подлинности Windows и проверка подлинности SQL - это два разных метода проверки подлинности SQL Server как приложения. Оба типа требуют, чтобы пользователь-участник был определен / создан с определенным уровнем доступа. Вот что такое логин. Вы можете создать логин любого типа, но вы должны создать логин и предоставить ему некоторый уровень доступа.