2015-06-29 3 views
8

Potete guidarmi su come visualizzare i ruoli/permessi attuali concessi a qualsiasi utente del database nel database SQL di Azure o in generale per un'istanza di MSSQL Server?Come visualizzare i ruoli e le autorizzazioni concessi a qualsiasi utente del database nell'istanza del server SQL di Azure?

ho questo qui di seguito query:

SELECT r.name role_principal_name, m.name AS member_principal_name 
FROM sys.database_role_members rm 
JOIN sys.database_principals r 
    ON rm.role_principal_id = r.principal_id 
JOIN sys.database_principals m 
    ON rm.member_principal_id = m.principal_id 
WHERE r.name IN ('loginmanager', 'dbmanager'); 

ho più bisogno di sapere quali sono le autorizzazioni concesse a questi ruoli "loginmanager" e "DBManager"?

Potresti aiutarmi in questo?

Grazie sk

+0

davvero una risposta completa, ma il check-out questo articolo per informazioni su questi ruoli: https://msdn.microsoft.com/en -us/library/azure/ee336235.aspx – cbattlegear

risposta

13

Per la documentazione MSDN per sys.database_permissions, questa query elenca tutte le autorizzazioni esplicitamente concesso o negato ai presidi nel database a cui sei connesso:

SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc, 
    pr.authentication_type_desc, pe.state_desc, pe.permission_name 
FROM sys.database_principals AS pr 
JOIN sys.database_permissions AS pe 
    ON pe.grantee_principal_id = pr.principal_id; 

Per Managing Databases and Logins in Azure SQL Database, il I ruoli loginmanager e dbmanager sono i due ruoli di sicurezza a livello di server disponibili nel database SQL di Azure. Il ruolo loginmanager ha l'autorizzazione per creare login e il ruolo dbmanager ha il permesso di creare database. Puoi vedere quali utenti appartengono a questi ruoli utilizzando la query che hai sopra rispetto al database master master. È anche possibile determinare l'appartenenza al ruolo degli utenti su ciascun database utente utilizzando la stessa query (meno il predicato del filtro) mentre si è connessi ad essi.

-1

se si desidera trovare il nome dell'oggetto ad es. nome della tabella e stored procedure su cui particolare utente ha il permesso, utilizzare la seguente query:

SELECT pr.principal_id, pr.name, pr.type_desc, 
    pr.authentication_type_desc, pe.state_desc, pe.permission_name, OBJECT_NAME(major_id) objectName 
FROM sys.database_principals AS pr 
JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id 
--INNER JOIN sys.schemas AS s ON s.principal_id = sys.database_role_members.role_principal_id 
    where pr.name in ('youruser1','youruser2') 
Non
+0

In base al post che hai elaborato, ti consiglio di passare un po 'di tempo a leggere la documentazione nel [Centro assistenza] (https://stackoverflow.com/help) in modo da avere migliore possibilità di ottenere risposta alla tua domanda. – Brien