Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
mutovin
Member

Откуда: Irkutsk
Сообщений: 12
Возникла необходимость получения роли пользователя, который напрямую не замаплен на БД и у которого логин на БД явно не прописан в security. На базе прописана только группа AD, группе присвоена роль, пользователь в AD входит в эту группу.
В Managment Studio делаю запрос:
SELECT
SUSER_SNAME() AS UserName,
GroupName = g.name,
LoginName = u.name,
u.uid AS UserID,
MemberSID = u.sid
FROM
sysusers u, sysusers g, sysmembers m
WHERE
g.uid = m.groupuid
and g.issqlrole = 1
and u.uid = m.memberuid
and (LOWER(u.name) = LOWER(SUSER_SNAME())
OR EXISTS(SELECT * FROM master..syslogins l WHERE l.sid=u.sid AND IS_MEMBER(l.name)=1))
ORDER BY 2, 3

Запрос в MS возвращает нужное значение. Делаю тот же запрос из приложения (С++) - запрос ничего не возвращает. Опытным путем выяснил, что не возвращает значение функция IS_MEMBER('Domain\GroupName'). Возвращает Null.
Почему не могу получить через приложение значение функции IS_MEMBER('Domain\GroupName') ? Может есть другой путь получить членство пользователя в доменной группе из приложения?
13 июл 11, 11:30    [10966318]     Ответить | Цитировать Сообщить модератору
 Re: Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Наверное, и пользователь при подключении из приложения другой.
13 июл 11, 11:35    [10966351]     Ответить | Цитировать Сообщить модератору
 Re: Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
mutovin
Member

Откуда: Irkutsk
Сообщений: 12
Пользователь тот же самый. Проверяю через функцию suser_name()
14 июл 11, 08:43    [10971129]     Ответить | Цитировать Сообщить модератору
 Re: Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
mutovin,

И контекст бд тот же самый?
14 июл 11, 08:58    [10971162]     Ответить | Цитировать Сообщить модератору
 Re: Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
mutovin
Member

Откуда: Irkutsk
Сообщений: 12
Контекст БД тот же самый (под словом контекст понимаю, что имя БД, к которой происходит подключение приложения и с которым работает Managment Studio через секцию USE "Имя БД")
14 июл 11, 09:08    [10971192]     Ответить | Цитировать Сообщить модератору
 Re: Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
mutovin
Member

Откуда: Irkutsk
Сообщений: 12
Проблема, на мой взгляд, простая и очевидная. Разве никто не сталкивался?
18 июл 11, 09:06    [10987346]     Ответить | Цитировать Сообщить модератору
 Re: Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Проблема, на мой взгляд, простая и очевидная. Разве никто не сталкивался?

а у вас там, случаем, application role не используется?

> Проверяю через функцию suser_name()

это suser_sname() имеется в виду? а если user_name() ?

Posted via ActualForum NNTP Server 1.4

18 июл 11, 09:16    [10987379]     Ответить | Цитировать Сообщить модератору
 Re: Не работает IS_MEMBER('Domain\GroupName') из приложения  [new]
mutovin
Member

Откуда: Irkutsk
Сообщений: 12
Действительно, при запуске приложения происходило подключение по application role. Проблему решил. Спасибо
19 июл 11, 05:40    [10992619]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить