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

Откуда: Москва
Сообщений: 39
Всем привет! Возникла такая ситуация - есть SQL SERVER 2008 R2, в нем есть логин testlogin. Указанные ниже запросы возвращают лишь "CONNECT SQL". Но если посмотреть вкладку Effective permissions для этого логина (пункт Server properties), то по ее информации у указанного логина в списке будут указаны множество разрешений (скриншот на файле в аттаче). В чем может быть дело? Честно говоря, напрягает невозможность узнать о правах юзера моими скриптами.

select permission_name from sys.server_principals p
join
sys.server_permissions pe
on
p.principal_id=pe.grantee_principal_id and
p.name like '%testlogin%'
go
select* from sys.server_role_members m
join
sys.server_principals p
on
p.principal_id=m.member_principal_id
join
sys.server_principals p2
on
p2.principal_id = m.role_principal_id and
p.name like '%testlogin%'
go


К сообщению приложен файл. Размер - 56Kb
4 ноя 13, 18:21    [15075021]     Ответить | Цитировать Сообщить модератору
 Re: Права пользователя уровня сервера  [new]
andy_111
Member

Откуда: Москва
Сообщений: 39
Подозреваю, что этот пользователь может быть через домен назначен админом. Но как это посмотреть моими скриптами, ведь сам сервер может показать его права.
4 ноя 13, 18:25    [15075024]     Ответить | Цитировать Сообщить модератору
 Re: Права пользователя уровня сервера  [new]
Glory
Member

Откуда:
Сообщений: 104760
andy_111
В чем может быть дело?

В том, что права бывают не только явные, но и наследуемые. Через серверную роль, например

The permissions that a principal has related to a securable may come from permissions that are set for several different principals. For example, a login might be granted permissions individually and also as a member of a group. The Effective tab shows the result of combining explicit permissions and the permissions that are received from group or role memberships. Grant permissions are aggregated. A deny permission overrides all grant permissions.
4 ноя 13, 18:28    [15075041]     Ответить | Цитировать Сообщить модератору
 Re: Права пользователя уровня сервера  [new]
andy_111
Member

Откуда: Москва
Сообщений: 39
Кажется, нашел как посмотреть - сам себе ответил :)

EXECUTE AS LOGIN = 'testuser';
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
REVERT
4 ноя 13, 18:28    [15075042]     Ответить | Цитировать Сообщить модератору
 Re: Права пользователя уровня сервера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
SELECT IS_SRVROLEMEMBER('sysadmin')


Полагаю, вернет 1цу.
4 ноя 13, 18:30    [15075047]     Ответить | Цитировать Сообщить модератору
 Re: Права пользователя уровня сервера  [new]
andy_111
Member

Откуда: Москва
Сообщений: 39
Видимо причиной путаницы стало вот что. Я не занимаюсь администрированием сервера Windows, не занимаюсь администрированием домена - только MS SQL Server. Для роли sysadmin явно логины не указаны - там указаны группы типа BUILTIN\Administrators, еще какие-то доменные группы. Видимо этот пользователь кем-то был внесен в эти группы.
4 ноя 13, 18:41    [15075073]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить