Когда IS_MEMBER установлен в Sql Server? - PullRequest
0 голосов
/ 26 мая 2009

Я пытаюсь заставить IS_MEMBER работать в UDF в Sql Server 2005.

У меня есть группа окон "Домен \ TestGroup".

Я назначаю ему свой логин "Домен \ Kieran".

выберите SUSER_NAME (); дает "Домен \ Киран"

но выберите IS_MEMBER («Домен \ TestGroup»); возвращает NULL.

Ответы [ 3 ]

1 голос
/ 26 мая 2009

Нулевой ответ от IS_MEMBER означает, что SQL Server не распознает группу Windows.

Он смотрит на токен входа в ваше соединение. Он не запрашивает Active Directory.

Из ссылки BOL:

IS_MEMBER определяет группу Windows членство путем изучения доступа токен, созданный Windows. токен доступа не отражает изменений в групповом членстве, которые сделаны после того, как пользователь подключается к экземпляру SQL Server.

Таким образом, несмотря на то, что doamin \ kieran входит в группу, вам, вероятно, потребуется выйти из системы и снова войти в нее, чтобы ваш токен для входа в систему обновлялся вместе с членством в группе.

Все это должно работать в вашем UDF (если только вы не имеете ИСПОЛНИТЕ ПОЛЬЗОВАТЕЛЯ или ВЛАДЕЛЬЦА в UDF)

0 голосов
/ 26 мая 2009

Ах. Я думаю, что вижу проблему.

Мой логин находится во встроенной \ Администраторы, которая является членом фиксированной роли сервера sysadmin.

Поэтому я являюсь членом sysadmin, что означает, что я dbo и не вижу никакой роли или информации о группе.

0 голосов
/ 26 мая 2009

Проверьте ERRORLOG и посмотрите, есть ли какая-либо ошибка, указывающая, что служба SQL Server не может подключиться к Active Directory «домен».

...