sys.server_role_members (Transact-SQL)
Si applica a: SQL Server Istanza gestita di SQL di Azure Piattaforma di strumenti analitici (PDW)
Restituisce una riga per ogni membro di ogni ruolo del server predefinito e definito dall'utente.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
role_principal_id | int | ID dell'entità server del ruolo. |
member_principal_id | int | ID dell'entità server del membro. |
Per aggiungere o rimuovere l'appartenenza al ruolo del server, usare l'istruzione ALTER SERVER ROLE (Transact-SQL).
Autorizzazioni
Gli account di accesso possono visualizzare la propria appartenenza al ruolo del server e possono visualizzare i principal_id dei membri dei ruoli predefiniti del server. Per visualizzare tutte le appartenenze ai ruoli del server, è necessaria l'autorizzazione VIEW ANY DEFINITION o l'appartenenza al ruolo predefinito del server securityadmin .
Gli account di accesso possono anche visualizzare le appartenenze ai ruoli di cui sono proprietari.
In database SQL di Azure i membri del ruolo server ##MS_DefinitionReader## possono eseguire query su tutte le viste del catalogo.
Per altre informazioni, vedere Metadata Visibility Configuration.
Esempi
Gli esempi in questa sezione illustrano come gestire i ruoli a livello di server nel database SQL di Azure.
R. Restituisce l'elenco dei membri del ruolo server
Nell'esempio seguente vengono restituiti i nomi e gli ID dei ruoli e dei relativi membri.
SELECT roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
, server_role_members.member_principal_id AS MemberPrincipalID
, members.name AS MemberPrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members
ON server_role_members.member_principal_id = members.principal_id
;
Nota
In database SQL di Azure gli account di accesso SQL non vengono salvati in modo permanente nella vista del sys.server_principals
catalogo. Pertanto, per recuperare l'appartenenza al ruolo a livello di server in database SQL di Azure, è necessario unire la vista sys.sql_logins
del catalogo.
B. database SQL di Azure: elencare tutte le entità (autenticazione SQL) che sono membri di un ruolo a livello di server
L'istruzione seguente restituisce tutti i membri di qualsiasi ruolo a livello di server predefinito usando le viste del catalogo sys.server_role_members
e sys.sql_logins
. Questa istruzione deve essere eseguita nel database master virtuale.
SELECT
sql_logins.principal_id AS MemberPrincipalID
, sql_logins.name AS MemberPrincipalName
, roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.sql_logins AS sql_logins
ON server_role_members.member_principal_id = sql_logins.principal_id
;
GO
Vedi anche
Viste del catalogo (Transact-SQL)
Viste del catalogo della sicurezza (Transact-SQL)
Ruoli a livello di server
Entità di sicurezza (motore di database)