Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странная ситуация с разрешениями для System Base Tables / 3 сообщений из 3, страница 1 из 1
30.07.2019, 21:46
    #39843181
Диклевич Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ситуация с разрешениями для System Base Tables
Добрый вечер,

наблюдая странную ситуацию. Есть SQL Server 2016б DEV, используется для разработки и тестирования:
Код: sql
1.
2.
3.
4.
Microsoft SQL Server 2016 (SP2-CU6) (KB4488536) - 13.0.5292.0 (X64) 
	Mar 11 2019 23:19:30 
	Copyright (c) Microsoft Corporation
	Developer Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor)



в одной из баз есть роль, например restricted_db_datareadeк . Недавно, проверяя разрешения пользователя входящего в роль, обнаружил странные DENY на одну из System Base Tables, sysseobjvalues . Скрипт для проверки разрешений взял отсюда , только добавил WHERE, чтобы выбрать определенного пользователя, например:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
SELECT  
    [UserName] = CASE memberprinc.[type] 
                    WHEN 'S' THEN memberprinc.[name]
                    WHEN 'U' THEN ulogin.[name] COLLATE Latin1_General_CI_AI
                 END,
    [UserType] = CASE memberprinc.[type]
                    WHEN 'S' THEN 'SQL User'
                    WHEN 'U' THEN 'Windows User'
                 END, 
    [DatabaseUserName] = memberprinc.[name],   
    [Role] = roleprinc.[name],      
    [PermissionType] = perm.[permission_name],       
    [PermissionState] = perm.[state_desc],       
    [ObjectType] = obj.type_desc,--perm.[class_desc],   
    [ObjectName] = OBJECT_NAME(perm.major_id),
    [ColumnName] = col.[name]
FROM    
    --Role/member associations
    sys.database_role_members members
JOIN
    --Roles
    sys.database_principals roleprinc ON roleprinc.[principal_id] = members.[role_principal_id]
JOIN
    --Role members (database users)
    sys.database_principals memberprinc ON memberprinc.[principal_id] = members.[member_principal_id]
LEFT JOIN
    --Login accounts
    sys.login_token ulogin on memberprinc.[sid] = ulogin.[sid]
LEFT JOIN        
    --Permissions
    sys.database_permissions perm ON perm.[grantee_principal_id] = roleprinc.[principal_id]
LEFT JOIN
    --Table columns
    sys.columns col on col.[object_id] = perm.major_id 
                    AND col.[column_id] = perm.[minor_id]
LEFT JOIN
    sys.objects obj ON perm.[major_id] = obj.[object_id]
WHERE memberprinc.[name] = 'DOMAIN\user.name'



вобщем, странно. я также хотел убрать эти разрешения. Подключился по DAC, выполняю в проблемной базе
Код: sql
1.
SELECT * FROM sys.sysseobjvalues

, все работает, возвращает результат.
Код: sql
1.
SELECT IS_SRVROLEMEMBER('sysadmin')

возвращает 1.

пробую
Код: sql
1.
2.
REVOKE SELECT ON sys.sysseobjvalues TO restricted_db_reader;
GRANT SELECT ON sys.sysseobjvalues TO restricted_db_reader

, на обоих выдает:
Msg 4606, Level 16, State 1, Line 6 Granted or revoked privilege SELECT is not compatible with object.

Соответственно, 2 вопроса:
1) как там появились DENY для этой System Base Table?
2) как их убрать без пересоздания роли? это самый простой вариант, но хотелось бы сперва разобраться как такое получилось. Может какой баг? Роль создана давно и никто из команды ее не трогал, да и прав нет. Есть правда доступ у системных админов, но они не должны были трогать ничего.
...
Рейтинг: 0 / 0
31.07.2019, 00:22
    #39843214
Диклевич Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ситуация с разрешениями для System Base Tables
Диклевич Александр,

все, разобрался, скрипт неправильный, не показывает разрешения для схем. подправил, все ясно теперь.
...
Рейтинг: 0 / 0
31.07.2019, 00:57
    #39843220
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная ситуация с разрешениями для System Base Tables
Диклевич Александрскрипт неправильный, не показывает разрешения для схем. подправилА выложить? :-)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странная ситуация с разрешениями для System Base Tables / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]