Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: как, зная SID, узнать юзера  [new]
invm
Member

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

Если вы на каком-то сервере админ, то что вам мешает найти группы, в которые входит пресловутый Вася?
16 янв 13, 16:17    [13779430]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm,

кроме SQL Server-а ничего не знаю.
научите, плиз!
я админ на своем локальном сервере, живущем на их компе, входящем нужный в домен
(куда и вася входит)
16 янв 13, 16:34    [13779597]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
Гость333
)))
а куда я вхожу, мне показывает (с моего сервера, где я админ)
EXEC xp_logininfo 'DOM\MyAcc', 'all'

Вряд ли показания SQL-сервера являются полными. Вот я на своём локально установленном сервере выполняю:
EXEC xp_logininfo 'ИмяДомена\Гость333', 'all'

Ну и мне возвращается, что я вхожу в группу "BUILTIN\Администраторы". А группа "ИмяДомена\Разработка" — не возвращается.


ну так Вы наверное не проделали главный фокус:
надо все известные группы добавить как логины на сервер.
он же показывает пути проникновения на сервер,
а не просто все группы, куда Вы входите.
т.е. если группа не логин на сервере, то она и не path
16 янв 13, 16:38    [13779620]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Glory
Member

Откуда:
Сообщений: 104751
)))
Glory,

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

Откуда вы тогда знаете, в какие группы входят другие пользователи домена ?
16 янв 13, 16:45    [13779698]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Гость333
Member

Откуда:
Сообщений: 3683
)))
ну так Вы наверное не проделали главный фокус:
надо все известные группы добавить как логины на сервер.

Да, действительно. Спасибо за подсказку.
16 янв 13, 16:52    [13779760]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

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

кроме SQL Server-а ничего не знаю.
научите, плиз!
я админ на своем локальном сервере, живущем на их компе, входящем нужный в домен
(куда и вася входит)
Ок. Тогда под какой учеткой запущен сиквел, на котором вы имеете админские полномочия?
16 янв 13, 17:06    [13779908]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Если в проблемной БД наименования виндовых групп не покорежены, то можно сгенерить скрипт на создание логинов:
select
 'create login ' + quotename(name) + ' from windows' 
from
 sys.database_principals
where
 type_desc = 'WINDOWS_GROUP';
И выполнить его на сиквеле, где вы админ. Потом уже с помощью xp_logininfo искать Васю.
16 янв 13, 17:22    [13780042]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Glory
Member

Откуда:
Сообщений: 104751
Имея админские права, проще использовать LDAP запросы к ADSI. Имхо.
16 янв 13, 17:28    [13780088]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm
Тогда под какой учеткой запущен сиквел, на котором вы имеете админские полномочия?


LocalSystem

а надо было его под своей учеткой запускать?
там выбор-то какой был? LocalSystem, LocalService, NetworkService
а доменную учетку знаю только одну: моя.
под чем лучше запускать?
16 янв 13, 17:45    [13780214]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm
Если в проблемной БД наименования виндовых групп не покорежены, то можно сгенерить скрипт на создание логинов:
select
 'create login ' + quotename(name) + ' from windows' 
from
 sys.database_principals
where
 type_desc = 'WINDOWS_GROUP';
И выполнить его на сиквеле, где вы админ. Потом уже с помощью xp_logininfo искать Васю.


сгенерила, запустила.
отловила.
в 2 группы входит.
а скажите пожалуйста, почему эти 2 группы я не вижу как логины?
16 янв 13, 18:01    [13780305]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
)))
почему эти 2 группы я не вижу как логины?
Не видите где?
16 янв 13, 18:11    [13780385]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm,

логинами на сервере не вижу.
запрос
select *
from sys.server_principals

таких не выдает.
16 янв 13, 18:17    [13780419]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Ну так на сиквеле, где нет админских полномочий и не увидите. Разрешения нужны.
Да, собственно, и зачем на них смотреть, когда искомое получено?
16 янв 13, 18:22    [13780450]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm,

ну я уже не заради васи выясняю,
хотела понять загадочную фразу из БОЛ,
уже тут приводила:

In SQL Server 2005 and later versions, the visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission.

я понимаю, если бы в логинах видела только себя
ну или максимум группы, куда вхожу.
но я же вижу еще пару групп из другого домена.
подумала: вижу еще группы, отмапленные на юзеров баз,
где я db_owner.
ну и вот доказательство, что все совсем не так.
поэтому остается вопрос, какие логины я вижу, чем это определяется?
16 янв 13, 18:31    [13780501]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
Glory
Member

Откуда:
Сообщений: 104751
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
16 янв 13, 18:43    [13780566]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
Glory,

а до меня все равно не доходит, откуда у меня правав на часть логинов
SELECT * FROM fn_my_permissions(NULL, 'SERVER')

server CONNECT SQL
server VIEW ANY DATABASE

никаких упоминаний логинов.

SELECT * FROM fn_my_permissions (NULL, 'DATABASE'); 


возвращает 61 строку, все что положено db_owner-у.

при этом,
select *
from sys.fn_my_permissions('LevyjDomen\GruppaKotorujuVizhuVLoginax', 'LOGIN')

возвращает
IMPERSONATE
VIEW DEFINITION
ALTER
CONTROL

надо же, и что, логин даже смогу дропнуть, не имея на сервере ничего, кроме VIEW ANY DATABASE?

и при этом тот же логин васи, который не вижу в sys.server_principals
select *
from sys.fn_my_permissions('DOM\VasinaGruppa', 'LOGIN')

ни одной строки не возвращает.

так почему я вижу какие-то логины, в том числе с левым доменом,
а какие-то не вижу?
кто-то спецом моей группе дал CONTROL на часть логинов?
даже руки зачесались взять и проверить этот CONTROL на LevyjDomen\GruppaKotorujuVizhuVLoginax,
убьют наверное, если дропнуть попробую.

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

Откуда: Москва
Сообщений: 9836
select has_perms_by_name('логин, который вижу', 'login', 'view definition');
select has_perms_by_name('логин, который не вижу', 'login', 'view definition');
?
16 янв 13, 19:03    [13780648]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
1 и 0 соответственно
16 янв 13, 19:13    [13780702]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
)))
1 и 0 соответственно
Ну вот вам и ответ.
16 янв 13, 19:18    [13780723]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
... CONTROL на тот логин ненастоящий!
Msg 15151, Level 16, State 1, Line 2
Cannot drop the login 'логин, который вижу', because it does not exist or you do not have permission.


...да и кто бы сомневался, нет у меня прав уровня сервера.


а вот это:
select has_perms_by_name('логин, который вижу', 'login', 'CONTROL');

нагло возвращает 1
16 янв 13, 19:22    [13780740]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm
)))
1 и 0 соответственно
Ну вот вам и ответ.


что ж за ответ-то, кто кто-то не поленился руками прописать мне view definition на какие-то логины?
и CONTROL тоже прописали? а почему дропнуть не могу?
16 янв 13, 19:24    [13780748]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
)))
кто кто-то не поленился руками прописать мне view definition на какие-то логины?

Разрешения сами собой не появляются. Они либо дадены явно, либо получены неявно.
)))
и CONTROL тоже прописали? а почему дропнуть не могу?
Для дропа логина требуется разрешение уровня сервера alter any login.
16 янв 13, 19:46    [13780827]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm
Разрешения сами собой не появляются. Они либо дадены явно, либо получены неявно.


вот я как раз и считала, что как-то неявно получила права.
типа вижу логины от юзеров своих баз.
но раз это не так, не подскажете, как еще неявно можно получить права на логины?
(вариант с явной раздачей прав очень маловероятен)


invm
Для дропа логина требуется разрешение уровня сервера alter any login.

действительно. прочла статью про DROP LOGIN,
Requires ALTER ANY LOGIN permission on the server.

вообще мне было очевидно, что я логины не могу ни создавать, ни удалять.
явно нужны права уровня сервера, и кроме VIEW DEFINITION у меня ничего нет.
но меня смутил этот внезапно обнаруженный CONTROL на логин.
в чем смысл такого CONTROL-а?

сами пишут в БОЛе (Permissions (Database Engine)):
•CONTROL

Confers ownership-like capabilities on the grantee. The grantee effectively has all defined permissions on the securable.
...

я вообще-то CONTROL так и понимала, все равно, что иметь все права,
с той разницей от овнера, что можно отобрать. т.е. сделать явный DENY.
только
1) в жизни бы не подумала, что можно дать CONTROL на ЛОГИН
2) какой смысл имеет CONTROL на LOGIN?
что с логином еще делать, кроме как ALTER и DROP?
и если на ALTER нужен явный ALTER ANY LOGIN ,
и на DROP нужен ALTER ANY LOGIN,
то нафига вообще CONTROL?

правда, остается еще IMPERSONATE. завтра опробую.
если сработает, буду все производить от чужого имени:
ESECUTE AS LOGIN = 'группа, куда не вхожу'.
а то больше никакого проку нет от прав на чужие логины.
16 янв 13, 23:30    [13781463]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
)))
вот я как раз и считала, что как-то неявно получила права.
типа вижу логины от юзеров своих баз.
но раз это не так, не подскажете, как еще неявно можно получить права на логины?

Явно -- когда для вас заведен персональный логин и ему выданы разрешения.
Неявно -- когда разрешения выданы логинам-Windows-группам и вы входите на сервер посредством членства в этих группах.

А CONTROL еще включает VIEW DEFINITION и требуется для выдачи разрешений.
16 янв 13, 23:50    [13781556]     Ответить | Цитировать Сообщить модератору
 Re: как, зная SID, узнать юзера  [new]
)))
Guest
invm,

спасибо, понятно.
у меня все права неявные.


a ценность владения разрешением CONTROL для логинов в виде виндовских групп(мой случай)
приближается к 0
ALTER и DROP без ALTER ANY LOGIN не дают ровно ничего,
IMPERSONATE тоже, попытка исполнить
EXECUTE ('select suser_sname()') AS LOGIN = 'LevyjDomen\ChuzhajaGruppa'

закончилась сообщением

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


ибо

{ EXEC | EXECUTE } AS
{ LOGIN | USER } = 'name'

name must be a singleton account, and cannot be a group, role, certificate, key, or built-in account, such as NT AUTHORITY\LocalService, NT AUTHORITY\NetworkService, or NT AUTHORITY\LocalSystem.

осталось VIEW DEFINITION и возможность передать это VIEW DEFINITION на LOGIN еще кому-то.
чтоб не мелочиться, грантовала сразу CONTROL на логин-группу другому логину-группе,
такое подарить нежалко :)

---------------------------------------------------------------------------
теперь хочется добить AD.
по совету GLORY создала linked server ADSI,
но на мой запрос выдает
Msg 7321, Level 16, State 2, Line 1
An error occurred while preparing the query ...

вопрос такой.
надо приводить в порядок запрос
(нашла на форуме и всего только свой домен вбила,
но вообще не понимаю, что там надо писать)
или в принципе у кого-то не хватает прав?
в смысле, у меня хватает ли прав?
я в выставила connections will be made using login's current security context,
у меня рядовая доменная учетка.
в MS жму на Test Connection, вообще-то пишет
The test connection to the linked server succeeded,
но слабо верится, чтоб вот так прямо всех подряд пускали...
17 янв 13, 13:19    [13784526]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить