Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать роли пользователя по логину Windows NT? / 20 сообщений из 20, страница 1 из 1
24.09.2002, 19:08:12
    #32052806
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Всем добрый вечер!

Вот такая задачка.

В БД определён набор ролей, связанных с группами Windows NT.
Т.е роль user -> группа DOMAIN\Users.
роль manager -> группа DOMAIN\Managers.
При этом конкретные усера или группы усеров включаются в роли БД занесением в соотв. группу Windows NT.

Вопрос: Как получить в переменной список ролей БД в которые входит усер, зная его логин в Windows NT.
...
Рейтинг: 0 / 0
24.09.2002, 19:16:14
    #32052811
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
и ещё условие - усер не имеет выделенного логина на SQL сервере, логины выделены лишь доменным группам, через которые и осуществляется связь с ролями.
...
Рейтинг: 0 / 0
25.09.2002, 00:41:54
    #32052842
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Все что пришло в голову :-)
Код: plaintext
1.
2.
3.
4.
5.
SELECT     sysusers_1.name AS RoleName, dbo.sysusers.name
FROM         dbo.sysusers INNER JOIN
                      dbo.sysmembers ON dbo.sysusers.uid = dbo.sysmembers.memberuid INNER JOIN
                      dbo.sysusers sysusers_1 ON dbo.sysmembers.groupuid = sysusers_1.uid
WHERE     (dbo.sysusers.name = CURRENT_USER)
...
Рейтинг: 0 / 0
25.09.2002, 01:24:03
    #32052844
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Ох ...
так не работает. сорри..
...
Рейтинг: 0 / 0
25.09.2002, 08:33:49
    #32052858
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
У меня один раз была задача надо было вытаскивать из AD
Список пользователей определенной группы,
помню через jet к ISAM подключился и считал.
может залинковать их и от этого дальше думать.
Но это явно не последняя инстанция. :-(

С уважением.
Артем.
...
Рейтинг: 0 / 0
25.09.2002, 09:18:13
    #32052861
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Если хочешь иметь такую возможность, нужно регистнрировать на SQL-сервере не группу пользователя, а конкретную учетную запись.
...
Рейтинг: 0 / 0
25.09.2002, 09:37:02
    #32052866
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Смотрите в BOL
IS_MEMBER()
IS_SRVROLEMEMBER
...
Рейтинг: 0 / 0
25.09.2002, 10:01:55
    #32052876
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Код: plaintext
1.
2.
3.
declare @name sysname 
set @name = ''
select @name = @name + name + '\' from sysusers where IS_MEMBER(name) =  1 
print @name

Так?
...
Рейтинг: 0 / 0
25.09.2002, 10:20:28
    #32052886
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
2 akuz

Так что является входящим параметром

Все таки имя пользователя Domain\Name,
или может быть имя группы.

Что бы зря не спорили.
...
Рейтинг: 0 / 0
25.09.2002, 10:22:19
    #32052887
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Не вижу разницы в данном контексте, Артем...
...
Рейтинг: 0 / 0
25.09.2002, 10:51:57
    #32052907
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Спасибо всем за участие.
2 snake
IS_MEMBER() действует на текущего пользователя.
2 Garya
Если хочешь иметь такую возможность, нужно регистнрировать на SQL-сервере не группу пользователя, а конкретную учетную запись.
Не хотетелось бы, но видно придётся.:(
Задача свести администрирование пользователей в SQL к нулю.
2 Артем
У меня один раз была задача надо было вытаскивать из AD
Список пользователей определенной группы,
помню через jet к ISAM подключился и считал.

К сожалению AD отсутствует.
Уточню задачу:
Необходимо получить таблицу вида
Код: plaintext
1.
2.
3.
4.
5.
create table #logins (
  login sysname,  -- имя пользователя Domain\Name, из таблицы усеров
 
  roles varchar( 1024 )  -- список ролей БД в которые он включен
 
)

Получается нужно сначала определить в какие группы WindowsNT, имеющие логин на SQL Server входит пользователь Domain\Name, а затем определьть в какие роли включены эти группы.
...
Рейтинг: 0 / 0
26.09.2002, 10:25:59
    #32053172
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Вижу, никто не может ответить.
Наверное я хочу от SQL сервера слишком многого :)
Ладно буду проще, придётся заводить на пользователей логины :(
...
Рейтинг: 0 / 0
26.09.2002, 11:06:36
    #32053191
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Правильно ли я понимаю, что необходимо:

1. Используя Windows Account Name получить список
Групп Windows, куда входит данный Пользователь.
2. Для каждой из Групп, полученных в п.1 получить
список Ролей SQL Server'a
3. Повторить шаги 1 и 2 для каждого пользователя
данного Windows хоста.

Так?
...
Рейтинг: 0 / 0
26.09.2002, 12:55:50
    #32053256
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Не совсем.
1.Используя Windows Account Name (или логин Windows NT), хранящийся в некоторой таблице пользователей, получить список Ролей некой БД, в которые этот пользователь (Windows Account Name) входит.
2. Повторить шаг 1 для каждого пользователя в данной
таблице пользователей.

При этом в роли БД включены логины SQL сервера соответствующие Группам Windows в которые этот Windows Account Name может быть включён при помощи стандартных средств администрирования Windows. Логины SQL сервера для каждого Windows Account Name пользователя не заводятся.

Похоже использование стандартных средств в такой ситуации невозможно. Может быть как-то можно решить через средства поддержки OLE Automation?
...
Рейтинг: 0 / 0
26.09.2002, 13:11:26
    #32053264
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Варианты:

1. xp_cmdshell + NET commands
Тут придется забиться на локаль Windows

2. sp_OA + ADSI
Универсально
...
Рейтинг: 0 / 0
26.09.2002, 13:36:24
    #32053277
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
То akuz,jimmers - а SQL_DMO+IS_MEMBER() не пойдет?
...
Рейтинг: 0 / 0
26.09.2002, 14:01:08
    #32053295
al__r
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Код: plaintext
1.
select name from sysusers where issqlrole =  1  and is_member(name) =  1 
...
Рейтинг: 0 / 0
26.09.2002, 14:42:34
    #32053322
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
если используется AD то можно через линкед сервер подключить AD и запросом вытащить юзеров, группы и все что Вам нужно....
...
Рейтинг: 0 / 0
26.09.2002, 15:07:06
    #32053336
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
Еще вариант - расширенная хранимая процедура, но это черевато, как Вы понимаете...
...
Рейтинг: 0 / 0
26.09.2002, 16:13:09
    #32053375
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать роли пользователя по логину Windows NT?
2 snake
а SQL_DMO+IS_MEMBER() не пойдет?
Поподробней пожалуйста.
2 MiCe
если используется AD
Domain controller - Win NT 4.0 без AD разумеется.
2 jimmers
sp_OA + ADSI
Универсально

Пожалуй вариант.
А будет ли это работать на Win NT 4.0 с обычным доменом?
Судя по описанию в MSDN - будет. А на практике?
Может ли кто нибудь привести пример использования, желательно на T-SQL или VB ?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать роли пользователя по логину Windows NT? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]