Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 10498|Odpověď: 0

[Zdroj] SQL Server pro dotazování uživatelských oprávnění a rolí objektů

[Kopírovat odkaz]
Zveřejněno 28.01.2015 16:33:32 | | |
Dotazování na oprávnění a role uživatelů objektů v SQL Serveru[@more@]

-- Dotazovat uživatele na oprávnění objektu
exec sp_helprotect NULL, 'UserName'
-- Dotaz na roli uživatele
exec sp_helpuser 'UserName'
-- Dotaz, kteří uživatelé mají specifikovanou systémovou roli
Exec sp_helpsrvrolemember 'sysadmin'
-- Vnořené role lze dotazovat
S tree_roles jako
(
VYBERTE role_principal_id, member_principal_id
OD sys.database_role_members
KDE member_principal_id = USER_ID('UserName')
ODBORY VŠE
VYBERTE c.role_principal_id,c.member_principal_id
FROM sys.database_role_members jako c
Vnitřní spojení tree_roles
on tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id) RoleName
OD tree_roles
-- Základní tabulka týkající se jiných oprávnění
Vyberte * ze sysuserů
Vybrat * ze syspermissions
-- Kdo má přístup k mé instanci SQL Serveru?
VYBRAT
name jako UserName, type_desc jako UserType, is_disabled jako IsDisabled
OD sys.server_principals
kde type_desc v('WINDOWS_LOGIN', 'SQL_LOGIN')
order by UserType, name, IsDisabled
-- Kdo má přístup k mým databázím?
VYBRAT
dp.name jako UserName, dp.type_desc jako UserType, sp.name jako LoginName sp.type_desc jako LoginType
Od sys.database_principals dp
JOIN sys.server_principals SP ON dp.principal_id = sp.principal_id
pořadí podle UserType
Vyberte * z sys.database_principals
-- Role serveru
vybrat
p.name jako UserName, p.type_desc jako UserType, pp.name jako ServerRoleName pp.type_desc jako ServerRoleType
Z sys.server_role_members rolí
spoj sys.server_principals p na roles.member_principal_id = p.principal_id
připojte se sys.server_principals PP na roles.role_principal_id = pp.principal_id
kde pp.name v ('sysadmin')
pořadí podle ServerRoleName, UserName
-- Databázové role
VYBRAT
p.name jako UserName, p.type_desc jako UserType, pp.name jako DBRoleName, pp.type_desc jako DBRoleType pp.is_fixed_role jako IfFixedRole
FROM sys.database_role_members rolí
JOIN sys.database_principals p ON roles.member_principal_id = p.principal_id
JOIN sys.database_principals pp ON roles.role_principal_id = pp.principal_id
kde pp.name v('db_owner', 'db_datawriter')
-- Co mohou tito uživatelé dělat?
VYBRAT
grantor.name jako GrantorName, dp.state_desc jako StateDesc, dp.class_desc jako ClassDesc, dp.permission_name jako PermissionName,
OBJECT_NAME(major_id) jako ObjectName, GranteeName = grantee.name
OD sys.database_permissions dp
JOIN sys.database_principals příjemce grantu na dp.grantee_principal_id = grantee.principal_id
JOIN sys.database_principals grantor na dp.grantor_principal_id = grantor.principal_id
kde permission_name třeba '%UPDATE%'






Předchozí:Konfigurace serveru SQLSERVER
Další:comboBox nastaven na pouze pro čtení (pouze select)
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com