Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 как, зная SID, узнать юзера  [new]
)))
Guest
имеется виндовский юзер DOM\VASYA.
известен его SID.
можно ли как-то узнать, на какого юзера в базе он отмаппирован?
select SUSER_SNAME(0x010500000000000515000000BE043E3237DA950F828BA628DB1A0300)

показывает логин DOM\VASYA.
а как узнать именно юзера в данной базе?
(похоже, он входит в юзера-группу. одиночных, похожих на него юзерoв, не вижу)
15 янв 13, 15:54    [13773050]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37225
В sysusers есть поле sid.
15 янв 13, 15:57    [13773069]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
gang
Member

Откуда:
Сообщений: 1394
))), MyDB..sysusers + master..syslogins связь по sid.
15 янв 13, 15:58    [13773072]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
select *
from sysusers
where sid = '0x010500000000000515000000BE043E3237DA950F828BA628DB1A0300'


пусто.
он явно входит в юзера-группу,
в sysusers видимо SID группы.
а группу-то я и не знаю
15 янв 13, 16:01    [13773117]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
))),

Посмотрите здесь:


select * from mydb.sys.database_principals
select * from sys.server_principals
15 янв 13, 16:03    [13773135]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
Алексей Куренков,
в sys.database_principals те же яйца, что и в sysusers.
а в server_principals ничего нового,
логин я и так знаю: DOM\VASYA.
15 янв 13, 16:07    [13773170]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Glory
Member

Откуда:
Сообщений: 104751
)))
а группу-то я и не знаю

Это вы про произвольную группу в домене ?
15 янв 13, 16:10    [13773201]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9721
))),

Если аутентификация на сиквеле была через виндовую группу, то не узнаете.
15 янв 13, 16:55    [13773529]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
gang
Member

Откуда:
Сообщений: 1394
)))
select *
from sysusers
where sid = '0x010500000000000515000000BE043E3237DA950F828BA628DB1A0300'


пусто.

Запрос надеюсь выполнен в контексте нужной пользовательской БД?
)))
в sysusers видимо SID группы.

В sysusres весьма неиллюзорно SID-ы логинов из master..syslogins.
Что возвращает аналогичный запрос к master..syslogins?
Есть ли в master..syslogins запись для 'DOM\VASYA'?
15 янв 13, 17:07    [13773607]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm
))),

Если аутентификация на сиквеле была через виндовую группу, то не узнаете.


вот это похоже на правду

to gang:

select *
from master..syslogins
дает всего 6 строк: sa + 6 групп.
ну видимо он проходит по DOM\Domain Users
15 янв 13, 17:48    [13773957]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
т.е. всего 7 строк, пардон. 6 из них группы
15 янв 13, 17:50    [13773975]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
gang
В sysusres весьма неиллюзорно SID-ы логинов из master..syslogins.


неправда ваша.
вот это
select count(distinct sid)
from sysusers


в нужной базе возвращает 511 строк.
например, меня, как юзера, нет в master..syslogins.
но я вхожу там минимум в 2 группы.
а в базе я именно юзер=моя_доменная_учетка.
не говоря о том, что у меня там заведен юзер вообще без логина,
лично заводила.
и у него тоже свой SID,
и уж никак его нет ни в sys.server_principals,
ни в master..syslogins.
15 янв 13, 17:57    [13774043]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
может прокатит
execute as login = 'DOM\VASYA'
select SUSER_SNAME()
revert


хотя, скорее всего, не хватит прав либо на сервере, либо в АД
15 янв 13, 18:08    [13774134]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
HandKot,
не канает, я жалкий db_owner


Msg 15406, Level 16, State 1, Line 1
Cannot execute as the server principal because the principal "DOM\VASYA" does not exist, this type of principal cannot be impersonated, or you do not have permission.


могу выполнить такое:
execute ('select suser_name()') as user ='DOM\VASYA'

в базе, где он прописан как явный юзер, отдает все тот же DOM\VASYA
(в той базе я его SID и почерпнула)

а в интересующей базе
Msg 15517, Level 16, State 1, Line 1
Cannot execute as the database principal because the principal "DOM\VASYA" does not exist, this type of principal cannot be impersonated, or you do not have permission.


но в ту базу он лазит, факт.
он там сегодня нагадил, у меня висит DDL-триггер на базу,
где я как раз логирую suser_sname().
и там он в логе проходит как DOM\VASYA,
а в базе такого юзера нет!!!
через группу лезет...

короче, сдаюсь я, не узнать виндовскую группу средствами сервера. прав invm
15 янв 13, 18:22    [13774219]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9721
))),

exec xp_logininfo 'DOM\VASYA', 'all'
?
15 янв 13, 18:32    [13774277]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm,

Msg 229, Level 14, State 5, Procedure xp_logininfo, Line 1
The EXECUTE permission was denied on the object 'xp_logininfo', database 'mssqlsystemresource', schema 'sys'.
15 янв 13, 18:35    [13774291]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9721
))),

Попросить того, у кого есть разрешения?
15 янв 13, 18:44    [13774350]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
(((
Guest
им все ПОФИГ.
в этом и проблема.
я на свои базы(в смысле, где мои процедуры живут) триггера не от хорошей жизни вешаю.
ходят всякие, с правами, удаляют и модифицируют.
поди докажи потом, что твою же процедуру кто-то другой поменял.
проходной двор!
(((

начинаю понимать тех, кто WITH ENCRYPTION изобрел...
15 янв 13, 18:53    [13774401]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Glory
Member

Откуда:
Сообщений: 104751
(((
ходят всякие, с правами, удаляют и модифицируют.

Вы же получили имя пользователя. Чего еще не хватает ?

Для получения дополнительной информации, хранящейся за пределами MSSQL, придется получить права на это.

(((
я на свои базы(в смысле, где мои процедуры живут) триггера не от хорошей жизни вешаю.

Т.е. сначала выдать права в своей базе, а потом с этим бороться ?
15 янв 13, 18:57    [13774419]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
Glory,

ну наверное же не я народ по группам рассовываю.
и из всех тех 511 юзеров мною создан всего 1 (without login! логины я вообще не знаю).
а уж группы как логины тем более не моя работа.
"все уже украдено до нас"
15 янв 13, 19:05    [13774433]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Glory
Member

Откуда:
Сообщений: 104751
)))
ну наверное же не я народ по группам рассовываю

И права в базе группам тоже не вы раздаете ?
15 янв 13, 19:08    [13774439]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
конечно не я.
говорю же, уже все до меня роздано.
я тут без году неделя(вернее, год уже), пишу себе мирно процедуры,
в своей собственной схеме.
в один прекрасный день обнаруживаю, что испарилась временная таблица
(не в смысле из tempdb, а моя промежуточная. из моей схемы, не из dbo)
и комментарии не мои в моей процедуре, ниоткуда.
это вообще нормально?
мало ли что там еще без предупреждения поменяли.
и главное, кто?
после навешивания триггера выцепила учетку.
кто -- вообще не знаю. не наше здание.
охренели, простите меня.
15 янв 13, 19:24    [13774492]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1832
Для отслеживания изменений в БД мы в свое время использовали DataBase Triggers.
Он в другую БД писал кто и когда и что на что изменил в процедурах, тригеррах и т.п.
т.е. срабатывал при каждом CREATE/ALTER/DROP PROCEDRE/TRIGGER и.т.п.

В итоге, всегда можно было отследить кто на что когда поменял.
15 янв 13, 20:03    [13774602]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
вот! товарищ понимает!
(то же самое и сделала. то, что вы зовете database trigger,
я зову ddl-триггер)
и да, в каждую базу по триггеру, а пишу все себе в 1 базу,
в которой (пока еще) не нагадили.
вот и хотелось выяснить, в каких группах сидят враги народа
и в какую базу безопаснее всего писать.
и не знаю, как еще эти таблицы защитить, куда пишу.
сдается мне, что тот ВАСЯ db_owner.
может и их грохнуть...
15 янв 13, 20:17    [13774643]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Гость333
Member

Откуда:
Сообщений: 3683
(((
ходят всякие, с правами, удаляют и модифицируют.
поди докажи потом, что твою же процедуру кто-то другой поменял

Фантастиш. А ваша роль в организации какая? Разработчик, тестировщик, администратор приложений, ... ? База боевая/тестовая? Докладную на имя начальства — не? Как-то это странно всё выглядит...
16 янв 13, 10:12    [13776257]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить