powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос из sysusers
4 сообщений из 4, страница 1 из 1
Запрос из sysusers
    #32076588
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю запрос:

select uid, name, gid from sysusers
where (uid>2) and (uid<16384)

Как вы понимаете он выдает для пользователей (uid, name) код роли (gid), к которой они пренадлежат. Так вот, как выводить не код роли, а ее имя (name) из этой же таблицы?
Подозреваю, что должен быть JOIN, но как связывать таблицу с самой сабой, не знаю.
Подскажите, пожалуйста.

P.S процедуру sp_helpuser использовать не хочу.
...
Рейтинг: 0 / 0
Запрос из sysusers
    #32076593
Arch-saint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select t1.uid, t1.name, t1.gid, t2.name from sysusers as t1 INNER JOIN sysusers as t2 ON t1.gid=t2.uid
where (t1.uid>2) and (t1.uid<16384)
...
Рейтинг: 0 / 0
Запрос из sysusers
    #32076600
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Arch-saint
Спасибо!
...
Рейтинг: 0 / 0
Запрос из sysusers
    #32076608
Фотография Дед Маздай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправьте, если я не прав, но разве gid для этого можно использовать? Там всегда лежит наименьший id нефиксированной роли и получить список всех ролей, куда входит данный юзер, на основе gid нельзя.

Вот select * from sysusers:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
uid      name         roles          gid
 0 	public	0x00	 0 
 16384 	db_owner	0x00	 0 
 16385 	db_accessadmin	0x00	 0 
 16386 	db_securityadmin	0x00	 0 
 16387 	db_ddladmin	0x00	 0 
 16389 	db_backupoperator	0x00	 0 
 16390 	db_datareader	0x00	 0 
 16391 	db_datawriter	0x00	 0 
 16392 	db_denydatareader	0x00	 0 
 16393 	db_denydatawriter	0x00	 0 
 16400 	aaa_role	0x00	 16400 
 16401 	bbb_role	0x00	 16401 
 2 	guest	0x00	 0 
 1 	dbo	0x01	 0 
 5 	aaa	0x280003	 16400 


Из этого можно сделать вывод, что aaa входит только в aaa_role. Но это не так.
sp_helpuser 'aaa':
Код: plaintext
1.
2.
3.
aaa	db_ddladmin
aaa	db_backupoperator
aaa	aaa_role
aaa	bbb_role
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос из sysusers
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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