Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как проверить юзера?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Есть КОМ-компонента, у нее коннект к базе, с админ правами.
Хоетлось сделать метод, умеющий делать проверку: неа вход имя некоего юзера, на выходе - ответ - может ли этот юзер иметь доступ к базе.

Другими словами, что-то типа SELECT HAS_DBACCESS( 'mydb'), но не для текущего юзера, а для указанного. Чтобы принципиально выяснить на административной коннекции может ли этот юзер пытаться коннектиться к базе, ибо скажем делать коннект/дисконнект накладно.

Частично проблема решается.
Но как быть если в качестве юзера в sql server включена группа юзеров без указания конкретных имен?

DOMAIN\'Domain Users'

и я хочу проверить конкретного юзера, как ?
25 авг 05, 11:37    [1816232]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить юзера?  [new]
EvAlex
Member

Откуда: Israel
Сообщений: 1001
через OPENROWSET или OPENQUERY на самого себя.
25 авг 05, 11:54    [1816341]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить юзера?  [new]
Glory
Member

Откуда:
Сообщений: 104760
SETUSER 'mary'
go
SELECT HAS_DBACCESS( 'mydb')
25 авг 05, 11:55    [1816347]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить юзера?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
EvAlex
через OPENROWSET или OPENQUERY на самого себя.


не понял, как именно.
Пример:

'domain\administrator' коннектнут к серверу.
Он хочет проверить, может ли юзер 'domain\user1' коннектиться к серверу, далее к базе mybase.

На SQL Server в логинах и юзерах базы нет отдельной записи для такого юзера, но есть запись для группы 'domain\group1' , членом которой является данный юзер.

Как проверить имея только вышеуказанную админ коннекцию, не отключаясь и не переконнкчиваясь (ну и слово :-) ) ?
25 авг 05, 11:58    [1816366]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить юзера?  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Сделай унутри своей системы табличку, де перечисли всех, кто имеет право пользоваться. Делов-то. Раз логины через НТ-группы раздаешь.
25 авг 05, 12:11    [1816473]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить юзера?  [new]
EvAlex
Member

Откуда: Israel
Сообщений: 1001
Winnipuh
EvAlex
через OPENROWSET или OPENQUERY на самого себя.


не понял, как именно.

через OPENROWSET windows authentication не проверить.
А чем не подходит способ Glory?
25 авг 05, 12:11    [1816476]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить юзера?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
EvAlex
Winnipuh
EvAlex
через OPENROWSET или OPENQUERY на самого себя.


не понял, как именно.

через OPENROWSET windows authentication не проверить.
А чем не подходит способ Glory?


Может быть и подходит, но может быть указано имя юзера, который вообще не имеет отношения к SQL Server, так поставлена задача.

Хотя,если отловить ошибку сразу после setuser, то наверное подходит...

Принято, :-), спасибо за участие.
25 авг 05, 12:15    [1816508]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить юзера?  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
EvAlex

А чем не подходит способ Glory?

Вот этим:
Important SETUSER is included in Microsoft® SQL Server™ 2000 only for backward compatibility, and its usage is not recommended. SETUSER may not be supported in a future release of SQL Server.
С уважением, Алексей.
25 авг 05, 12:17    [1816527]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить