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

Откуда:
Сообщений: 149
как понять откуда пользователь получает права например на выполнение процедуры? (входит в роль, получает сам итд?)
15 фев 16, 13:50    [18817887]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
В теории можно найти требуемую информацию в дефолтном трейсе:

SELECT
    e.name,
    v.subclass_name,
    t.DatabaseName,
    t.NTDomainName,
    t.ApplicationName,
    t.LoginName,
    t.SPID,
    t.StartTime,
    t.RoleName,
    t.TargetUserName,
    t.TargetLoginName,
    t.SessionLoginName, e.category_id
FROM sys.traces i
CROSS APPLY sys.fn_trace_gettable([path], DEFAULT) t
JOIN sys.trace_events e ON t.EventClass = e.trace_event_id
JOIN sys.trace_subclass_values v ON v.trace_event_id = e.trace_event_id AND v.subclass_value = t.EventSubClass
WHERE e.category_id = 8

Например, вот такие события в трейс попадают:

USE [master]
GO
CREATE USER user1 WITHOUT LOGIN
GO
ALTER ROLE [db_owner] ADD MEMBER [user1]
GO


Можно уточнить вопрос... "откуда"... Это "пользователь" который эти права задал?
15 фев 16, 14:19    [18818041]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
zavgar
Member

Откуда:
Сообщений: 149
AlanDenton,

нет. Не знаю как сформулировать: через что он их получает. Сам по себе, роль, роль приложения итд
15 фев 16, 14:31    [18818111]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
zavgar
AlanDenton,

нет. Не знаю как сформулировать: через что он их получает. Сам по себе, роль, роль приложения итд


что вернёт , когда вы под этим юзером:

select SYSTEM_USER, USER
15 фев 16, 14:35    [18818137]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
o-o
Guest
так а при чем тут трэйс к правам?
допустим, все права в базах давно (5 лет назад) выданы виндовым группам.
сегодня меня включают в одну из групп на уровне винды,
серверных событий вообще никаких, а права мне привалили.
------------------------
вопрос хитрый,
код не в 1 строку.
надо проверить все user_token,
по каждому из них проверить, имеются ли явно выданные права
либо вхождение в датабэйсные роли.

+ есть наведенные права.
т.е. некоторые права уровня сервера влекут за собой определенные права в базах,
куда логин отмаплен.
но это не случай EXECUTE
15 фев 16, 14:36    [18818142]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Было бы полезно понять, откуда, например, унаследовано EXECUTE или что-то ещё. Но я не нашел встроенных средств.
15 фев 16, 14:45    [18818210]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
Если из fn_my_permissions "вычесть" явно назначенные права, то получатся только наследуемые права.
15 фев 16, 14:52    [18818287]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
zavgar
Сам по себе, роль, роль приложения итд

Для получения прав роли приложения нужно активировать эту роль приложения. Это видно в трассе
15 фев 16, 14:53    [18818297]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
zavgar
Member

Откуда:
Сообщений: 149
я думал я просто читать BOL разучился но я тоже не понял как разобраться в имеющихся правах и откуда кто их заимел или унаследовал.
15 фев 16, 14:54    [18818303]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
zavgar
Member

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

те надо от имени каждого пользователя войти в базу?
я не могу от имени админа это узнать?
15 фев 16, 14:59    [18818358]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
zavgar
Member

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

и потом я не могу понять от кого я их наследую, да наследую но от кого? Ручками все проверять?
15 фев 16, 15:02    [18818371]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
zavgar
те надо от имени каждого пользователя войти в базу?
я не могу от имени админа это узнать?

Вы можете почитать хелп по fn_my_permissions
15 фев 16, 15:04    [18818391]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
zavgar
и потом я не могу понять от кого я их наследую, да наследую но от кого? Ручками все проверять?

Это же граф. Может даже зацикленный. Может даже с противоположными наборами прав для "вершин"

Вы неправильно решаете задачу, имхо.
Если вас интересует, как пользователь X получились права на объект Y, то начинать нужно с объекта Y, а не с пользователя X
15 фев 16, 15:08    [18818419]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Konst_One
Member

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

и потом я не могу понять от кого я их наследую, да наследую но от кого? Ручками все проверять?


USE MYDB
GO
EXECUTE AS USER = 'MYDOMEN\anotheruser';
SELECT * FROM fn_my_permissions('dbo.DocDelete', 'OBJECT') 
ORDER BY subentity_name, permission_name ; 
REVERT;
GO


это что ли хотите?
15 фев 16, 15:18    [18818502]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
o-o
Guest
Konst_One
zavgar
Glory,

и потом я не могу понять от кого я их наследую, да наследую но от кого? Ручками все проверять?


USE MYDB
GO
EXECUTE AS USER = 'MYDOMEN\anotheruser';
SELECT * FROM fn_my_permissions('dbo.DocDelete', 'OBJECT') 
ORDER BY subentity_name, permission_name ; 
REVERT;
GO


это что ли хотите?


неужели так трудно понять, что хочет ТС???

пример.
вот есть некий юзер,
он нагло выполняетс в мастере xp_readerrorlog.
меня интересует, откуда у него права на это xp_readerrorlog.
юзер не админ, входит в пару виндовых групп, к-ые тоже не админы.
и явно выданного EXECUTE на эту процедуру нет.
ваши предложения, как понять, откуда права у юзера?
ну, выполню я ваш код, и что?
вот результат:
entity_name subentity_name permission_name
xp_readerrorlog ALTER
xp_readerrorlog CONTROL
xp_readerrorlog EXECUTE
xp_readerrorlog REFERENCES
xp_readerrorlog TAKE OWNERSHIP
xp_readerrorlog VIEW DEFINITION
мне полегчало и я вижу, ОТКУДА у него права?
да нифигошеньки.
где в явном виде принципал, обладающий правами?

хотя по данному аутпуту уже ясно,
на что искать.
тем не менее, этот код *не выдал имени обладателя EXECUTE on xp_readerrorlog*.
повторю, явного EXECUTE на xp_readerrorlog нет ни у кого.
15 фев 16, 15:51    [18818778]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
мне то зачем объясняете, вы ТС объясняйте. dbo небось у него
15 фев 16, 15:52    [18818795]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
повторю, явного EXECUTE на xp_readerrorlog нет ни у кого.

Это как, извините ?
Если у xp_readerrorlog вообще нет ничего в закладке Permissions, то только админы могут ее запустить.
А если есть, то и придется раскручивать граф прав от того, что есть в этой закладке Permissions
15 фев 16, 15:56    [18818823]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
o-o
Guest
Glory
o-o
повторю, явного EXECUTE на xp_readerrorlog нет ни у кого.

Это как, извините ?
Если у xp_readerrorlog вообще нет ничего в закладке Permissions, то только админы могут ее запустить.
А если есть, то и придется раскручивать граф прав от того, что есть в этой закладке Permissions

Ответ: У одной из виндовых групп, куда входит данный логин, в мастере выдан CONTROL.
это всего один пример, могу еще пару интересных привести, когда совершенно нерчевидно, откуда у товарища права
15 фев 16, 16:02    [18818872]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
Ответ: У одной из виндовых групп, куда входит данный логин, в мастере выдан CONTROL.

Э. Вы уверяли, что типа "ни админ". Это не наследование прав.
15 фев 16, 16:04    [18818903]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
zavgar
Member

Откуда:
Сообщений: 149
у меня есть N пользователей и N групп и N обьектов мне спустили задачу провести аудит. Спустили список Васе можно это и это. Я конечно могу запретить васе делать то что не нужно но тогда следующий админ меня за такой зоопарк повесит за причинное место поэтому охота узнать какого лешего вася вдруг получил права. Какой самый кошерный способ действия - кроме все удалить и сделать заново
15 фев 16, 16:06    [18818910]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
o-o
Guest
Glory
o-o
Ответ: У одной из виндовых групп, куда входит данный логин, в мастере выдан CONTROL.

Э. Вы уверяли, что типа "ни админ". Это не наследование прав.

Я продолжаю уверять : эта учетка НЕ админ.
Контрол в мастере это не указание на админство на сервере
15 фев 16, 16:09    [18818964]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
Контрол в мастере это не указание на админство на сервере

Ага. Пистолет не указывает на службу в полиции. Однако стреляет даже в том случае, если вы выдадате его случайному человеку.
Если вы назначаете права, которые игнорируют все другие права, то это не наследование.
15 фев 16, 16:13    [18819006]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
zavgar
у меня есть N пользователей и N групп и N обьектов мне спустили задачу провести аудит. Спустили список Васе можно это и это. Я конечно могу запретить васе делать то что не нужно но тогда следующий админ меня за такой зоопарк повесит за причинное место поэтому охота узнать какого лешего вася вдруг получил права. Какой самый кошерный способ действия - кроме все удалить и сделать заново


на сервере:
- logins
- server roles

в базе:
- users
- roles
- application roles
15 фев 16, 16:16    [18819033]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
zavgar
Member

Откуда:
Сообщений: 149
те все тупо ручками берем васю берем обьект и по цепочке ищем и так каждый раз?
нельзя получить некую сводную таблицу:

вася обьект право откудаполучил
15 фев 16, 16:20    [18819087]     Ответить | Цитировать Сообщить модератору
 Re: права  [new]
Glory
Member

Откуда:
Сообщений: 104760
zavgar
нельзя получить некую сводную таблицу:

В смысле - скажите, где нажать кнопку и я нажму?
15 фев 16, 16:22    [18819106]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить