Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 10498|Risposta: 0

[Fonte] SQL Server per interrogare i permessi e i ruoli degli oggetti dell'utente

[Copiato link]
Pubblicato su 28/01/2015 16:33:32 | | |
Interrogazione dei permessi degli oggetti e dei ruoli degli utenti in SQL Server[@more@]

-- Interrogare i permessi degli oggetti dell'utente
exécute sp_helprotect NULL, 'UserName'
-- Interrogare il ruolo dell'utente
exec sp_helpuser 'UserName'
-- Interrogare quali utenti hanno un ruolo di sistema specificato
Executive sp_helpsrvrolemember 'sysadmin'
-- I ruoli annidati possono essere interrogati
CON tree_roles
(
SELEZIONA role_principal_id, member_principal_id
DA sys.database_role_members
DOVE member_principal_id = USER_ID('UserName')
UNION ALL
SELEZIONA c.role_principal_id.c.member_principal_id
DA sys.database_role_members come c
tree_roles di giunzione interna
su tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinto USER_NAME(role_principal_id) Nome del ruolo
DA tree_roles
-- Tabella di base relativa ad altri permessi
seleziona * da sysusers
seleziona * da syspermissions
-- Chi ha accesso alla mia istanza SQL Server?
SELEZIONARE
nome come UserName, type_desc come UserType is_disabled come IsDisabled
DA sys.server_principals
dove type_desc in ('WINDOWS_LOGIN', 'SQL_LOGIN')
ordine per UserType, nome, IsDisabled
-- Chi ha accesso ai miei database?
SELEZIONARE
dp.name come UserName, dp.type_desc come UserType, sp.name come LoginName sp.type_desc come LoginType
DA sys.database_principals DP
JOIN sys.server_principals sp SU dp.principal_id = sp.principal_id
ordine per UserType
seleziona * da sys.database_principals
-- Ruoli di server
selezionare
p.name come UserName, p.type_desc come UserType, pp.name come ServerRoleName, pp.type_desc come ServerRoleType
Da sys.server_role_members ruoli
unirsi sys.server_principals p su roles.member_principal_id = p.principal_id
unirsi sys.server_principals pp su roles.role_principal_id = pp.principal_id
dove pp.name in ('sysadmin')
ordine da NomeServerRuolo, Nome Utente
-- Ruoli nel database
SELEZIONARE
p.name come UserName, p.type_desc come UserType, pp.name come DBRoleName, pp.type_desc come DBRoleType, pp.is_fixed_role come IfFixedRole
DA sys.database_role_members ruoli
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
dove pp.name in('db_owner', 'db_datawriter')
-- Cosa possono fare questi utenti?
SELEZIONARE
grantor.name come GrantorName, dp.state_desc come StateDesc, dp.class_desc come ClassDesc, dp.permission_name come PermissionName ,
OBJECT_NAME(major_id) come NomeOggetto, Nome Beneficiario = grantee.name
DA sys.database_permissions DP
Unisciti sys.database_principals beneficiario su dp.grantee_principal_id = grantee.principal_id
UNISCITI sys.database_principals finanziatore su dp.grantor_principal_id = grantor.principal_id
dove permission_name come '%UPDATE%'






Precedente:Configurazione dei server SQLSERVER
Prossimo:comboBox impostato su sola lettura (solo selezione)
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com