Как я могу запросить, какая учетная запись Active Directory связана с пользователем SQL Server? - PullRequest
1 голос
/ 26 июля 2011

У меня есть два SQL Server, которые я в основном использую (экземпляр 2005 и 2000.) Моя структура разрешений работает так -

Сначала я создаю группу Active Directory, а затем добавляю в нее всех необходимых пользователей. Затем я перехожу к SQL-MS и добавляю пользователя, выбирая опцию аутентификации Windows, а затем выбираю группу AD, которую я только что создал. Это неуместно, но я связываю новую учетную запись со всеми необходимыми таблицами данных, представлениями и SP.

После выбора группы я всегда оставлял поле Имя для входа в качестве имени группы AD для справки.

Недавно мне переименовали группу AD. База данных продолжала работать, и, каким-то образом, SQL Server знает, с какой группой AD следует связать имя входа SQL. Моя проблема в том, что имя входа не обновлялось в SQL Server, поэтому я понятия не имею, какая группа AD связана с учетной записью входа в SQL Server!

Есть ли запрос, который я могу выполнить, или в каком-то месте скрыты настройки, которые могут помочь мне определить, какая группа AD связана с этой учетной записью?

- РЕДАКТИРОВАТЬ -

Спасибо ответчикам за ваши ответы. Вы ответили на этот вопрос, однако это еще один вопрос , опубликованный здесь .

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Сопоставление между группой AD и входом в SQL Server выполняется с использованием SID группы .Вы можете увидеть список логинов с их SID, используя sys.server_principals .Если вы хотите изменить имя существующего логина, вы можете использовать ALTER LOGIN .

1 голос
/ 26 июля 2011

Вы можете проверить, что группы Windows, которые вы определили в своей системе как логин;

SELECT *
FROM sys.server_principals
WHERE type_desc = 'WINDOWS_GROUP'

Это работает только на SQL Server 2005 и новее.

Новы не получите фактическое имя группы AD - только «SID» для этой группы ....

Вся система безопасности сильно отличалась в SQL Server 2000 - я не думаю, что есть 1:1 эквивалентный запрос для этого старого динозавра :-) Лучшее, что я могу придумать, будет:

SELECT *
FROM master.dbo.sysxlogins
WHERE password IS NULL 
  AND name IS NOT null

Но, к сожалению, я бы не знал, как разделить пользователей Windows и безопасность Windows групп здесь ....

...