Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Права доступа  [new]
Чип&Дейл
Guest
Добрый день подскажите как получить разрешения какого-либо пользователя бд?
На форуме нашел такой вот запросик, который отображает то что мне нужно, но как я понял только текущего пользователя, а мне нужно получать инфу любого выбранного.
SELECT 
sysobjects.Name AS [Name],
CASE PERMISSIONS(OBJECT_ID(sysobjects.Name))&1 WHEN 1 THEN 1 ELSE 0 END AS [Select],
CASE PERMISSIONS(OBJECT_ID(sysobjects.Name))&2 WHEN 2 THEN 1 ELSE 0 END AS [Update],
CASE PERMISSIONS(OBJECT_ID(sysobjects.Name))&8 WHEN 8 THEN 1 ELSE 0 END AS [Insert],
CASE PERMISSIONS(OBJECT_ID(sysobjects.Name))&16 WHEN 16 THEN 1 ELSE 0 END AS [Delete]

FROM sysobjects 
WHERE xtype = 'U'

Пробовал через
setuser 'test' 
go

но выдает
Setuser failed because of one of the following reasons: the database principal 'test' does not exist, its corresponding server principal does not have server access, this type of database principal cannot be impersonated, or you do not have permission.

(строк обработано: 32)
9 ноя 15, 15:14    [18389829]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
Чип&Дейл
Guest
Execute as user 'test';

Выдает
Cannot execute as the database principal because the principal "test" does not exist, this type of principal cannot be impersonated, or you do not have permission.

(строк обработано: 32)
9 ноя 15, 15:18    [18389864]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
Glory
Member

Откуда:
Сообщений: 104760
Чип&Дейл
На форуме нашел такой вот запросик, который отображает то что мне нужно, но как я понял только текущего пользователя, а мне нужно получать инфу любого выбранного.

зачем любому пользователю список объектов, на которые у него нет прав ?

Чип&Дейл
Выдает
Cannot execute as the database principal because the principal "test" does not exist, this type of principal cannot be impersonated, or you do not have permission.

Что из этого вам непонятно ?
9 ноя 15, 15:21    [18389890]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
https://msdn.microsoft.com/en-us/library/ms186236.aspx
9 ноя 15, 15:23    [18389904]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
o-o
Guest
sys.fn_my_permissions (Transact-SQL)
отымперсонэйтить нужный логин/user и выбрать интересующий securable_class.
9 ноя 15, 15:28    [18389962]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
Чип&Дейл
Guest
Glory
Чип&Дейл
На форуме нашел такой вот запросик, который отображает то что мне нужно, но как я понял только текущего пользователя, а мне нужно получать инфу любого выбранного.

зачем любому пользователю список объектов, на которые у него нет прав ?

Чип&Дейл
Выдает
Cannot execute as the database principal because the principal "test" does not exist, this type of principal cannot be impersonated, or you do not have permission.

Что из этого вам непонятно ?


Не любому, и пользователю это не нужно, это нужно администратору чтобы он выбрав пользователя мог дать/забрать разрешения.

Непонятно то почему выходит это сообщение ведь пользователь с таким именем в базе присутствует.
10 ноя 15, 06:05    [18392901]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
Чип&Дейл
Guest
SELECT * FROM fn_my_permissions(NULL, 'Database') 
GO

Ну вроде бы правильно выбрал, но только отображаются что вообще можно делать в базе, а мне нужны разрешения над объектами.
Если меняю 'Database' на 'Object' то в результате никаких записей нет.
10 ноя 15, 06:49    [18392915]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
o-o
Guest
Чип&Дейл,

Выбрал правильно кто, вы юзера, вы синтаксис или сервер права?
В том виде, что у вас, покажет права в текущей базе.
Для конкретного объекта надо его вписать вместо NULL
Для конкретного пользователя надо его имперсонэйтить, execute as user = 'test'
А вы, судя по описанию, от своего имени делаете,
ну так нормально 61 строку получить, админ же dbo
10 ноя 15, 07:57    [18392971]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа  [new]
Чип&Дейл
Guest
o-o,

Спасибо что все разложили по полочкам)
10 ноя 15, 08:16    [18392987]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить