Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 10498|Răspunde: 0

[Sursă] SQL Server pentru a interoga permisiunile și rolurile obiectelor utilizatorului

[Copiază linkul]
Postat pe 28.01.2015 16:33:32 | | |
Interogarea permisiunilor obiectelor și rolurilor utilizatorilor în SQL Server[@more@]

-- Interoghează permisiunile de obiect ale utilizatorului
exec sp_helprotect NULL, 'NumeUtilizator'
-- Interoghează rolul utilizatorului
exec sp_helpuser 'UserName'
-- Interoghează care utilizatori au un rol de sistem specificat
EXEC sp_helpsrvrolemember 'sysadmin'
-- Rolurile imbricate pot fi interogate
CU tree_roles
(
SELECTEAZĂ role_principal_id, member_principal_id
DE sys.database_role_members
UNDE member_principal_id = USER_ID('NumeUtilizator')
UNION ALL
SELECTEAZĂ c.role_principal_id.c.member_principal_id
DIN sys.database_role_members ca c
Îmbinarea interioară tree_roles
pe tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id) Nume-rol
DE tree_roles
-- Tabel de bază legat de alte permisiuni
selectează * din sysusers
select * din syspermissions
-- Cine are acces la instanța mea SQL Server?
ALEGE
nume ca NumeUtilizator, type_desc ca TypeUtilizator is_disabled ca IsDisabled
DE sys.server_principals
unde type_desc în('WINDOWS_LOGIN', 'SQL_LOGIN')
ordine după UserType, nume, IsDisabled
-- Cine are acces la bazele mele de date?
ALEGE
dp.name ca NumeUtilizator, dp.type_desc ca TypeUtilizator, sp.name ca NumeLogin, sp.type_desc ca LoginType
DE sys.database_principals DP
JOIN sys.server_principals sp PE dp.principal_id = sp.principal_id
Ordină după UserType
selectează * din sys.database_principals
-- Roluri de server
alege
p.name ca NumeUtilizator, p.type_desc ca TipUtilizator, pp.name ca NumeRolServer, pp.type_desc ca RolRolServerTip
Din sys.server_role_members roluri
join sys.server_principals p pe roles.member_principal_id = p.principal_id
Join sys.server_principals pp pe roles.role_principal_id = pp.principal_id
unde pp.name în('sysadmin')
Ordine după NumeRolServer, Nume de Utilizator
-- Roluri în baza de date
ALEGE
p.name ca UserName, p.type_desc ca UserType, pp.name ca DBRoleName, pp.type_desc ca DBRoleType, pp.is_fixed_role ca IfFixedRole
DIN sys.database_role_members roluri
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
unde pp.name în('db_owner', 'db_datawriter')
-- Ce pot face acești utilizatori?
ALEGE
grantor.name ca GrantName, dp.state_desc ca StateDesc, dp.class_desc ca ClassDesc dp.permission_name ca PermissionName ,
OBJECT_NAME(major_id) ca NumeObiect, NumeBeneficiar = grantee.name
DE sys.database_permissions DP
ALĂTURĂ-sys.database_principals beneficiar pe dp.grantee_principal_id = grantee.principal_id
ALĂTURĂ-sys.database_principals fondator pe dp.grantor_principal_id = grantor.principal_id
unde permission_name de genul '%UPDATE%'






Precedent:Configurarea serverului SQLSERVER
Următor:comboBox setat doar pentru citire (select-only)
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com