powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странная ситуация с разрешениями для System Base Tables
3 сообщений из 3, страница 1 из 1
Странная ситуация с разрешениями для System Base Tables
    #39843181
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер,

наблюдая странную ситуацию. Есть 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
Странная ситуация с разрешениями для System Base Tables
    #39843214
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич Александр,

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


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