Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 10498|Відповідь: 0

[Джерело] SQL Server для запиту щодо дозволів та ролей об'єктів користувача

[Копіювати посилання]
Опубліковано 28.01.2015 16:33:32 | | |
Запит на права доступу об'єктів та ролей користувачів у SQL Server[@more@]

-- Запит на дозволи об'єкта користувача
exec sp_helprotect NULL, 'Ім'я користувача'
-- Запит до ролі користувача
exec sp_helpuser 'UserName'
-- Запит, які користувачі мають вказану системну роль
exec sp_helpsrvrolemember 'sysadmin'
-- Вкладені ролі можна запитувати
З tree_roles як
(
ВИБЕРІТЬ role_principal_id, member_principal_id
Від sys.database_role_members
ДЕ member_principal_id = USER_ID('Ім'я користувача')
UNION ALL
ВИБЕРІТЬ c.role_principal_id,c.member_principal_id
ВІД sys.database_role_members як c
внутрішній приєднуйся tree_roles
на tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id) RoleName
З tree_roles
-- Базова таблиця, пов'язана з іншими правами доступу
вибрати * від системних користувачів
вибрати * з syspermissions
-- Хто має доступ до мого екземпляра SQL Server?
ВИБЕРІТЬ
ім'я як Ім'я користувача, type_desc як UserType, is_disabled як IsDisabled
Від sys.server_principals
де type_desc у ('WINDOWS_LOGIN', 'SQL_LOGIN')
порядок за типом користувача, ім'ям, IsDisabled
-- Хто має доступ до моїх баз даних?
ВИБЕРІТЬ
dp.name як ім'я користувача, dp.type_desc як UserType, sp.name як LoginName, sp.type_desc як LoginType
ВІД sys.database_principals DP
JOIN sys.server_principals sp ON dp.principal_id = sp.principal_id
Порядок за типом користувача
вибрати * з sys.database_principals
-- Ролі сервера
Виберіть
p.name як Ім'я користувача, p.type_desc як UserType, pp.name як ServerRoleName, pp.type_desc як ServerRoleType
З sys.server_role_members ролей
об'єднати sys.server_principals p на roles.member_principal_id = p.principal_id
Приєднатися до sys.server_principals PP на roles.role_principal_id = pp.principal_id
Де pp.name у ('sysadmin')
порядок за ServerRoleName, UserName
-- Ролі в базі даних
ВИБЕРІТЬ
p.name як Ім'я користувача, p.type_desc як UserType, pp.name як DBRoleName, pp.type_desc як DBRoleType, pp.is_fixed_role як IfFixedRole
З sys.database_role_members ролей
JOIN sys.database_principals p ON roles.member_principal_id = p.principal_id
ПРИЄДНАТИСЯ sys.database_principals PP НА roles.role_principal_id = pp.principal_id
де pp.name в ('db_owner', 'db_datawriter')
-- Що можуть робити ці користувачі?
ВИБЕРІТЬ
grantor.name як GrantorName, dp.state_desc як StateDesc, dp.class_desc як ClassDesc, dp.permission_name як PermissionName,
OBJECT_NAME(major_id) як ObjectName, GranteeName = grantee.name
Від sys.database_permissions DP
ПРИЄДНУЙТЕСЬ sys.database_principals грантоотримувача на dp.grantee_principal_id = grantee.principal_id
JOIN sys.database_principals grantor on dp.grantor_principal_id = grantor.principal_id
де permission_name як '%UPDATE%'






Попередній:Конфігурація сервера SQLSERVER
Наступний:comboBox встановлений на режим лише для читання (select-only)
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com