Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Returnerar en rad för varje medlem i varje fast och användardefinierad serverroll.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| role_principal_id | int | Server-Principal ID för rollen. |
| member_principal_id | int | Server-Principal medlemmens ID. |
För att lägga till eller ta bort serverrollsmedlemskap, använd satsenALTER SERVER ROLE (Transact-SQL).
Permissions
Inloggningar kan se sitt eget serverrollmedlemskap och kan se medlemmarna i de fasta serverrollerna principal_id. För att se alla serverrollsmedlemskap krävs VIEW ANY DEFINITION-behörighet eller medlemskap i securityadmin-funktionen med fast server.
Inloggningar kan också se rollmedlemskap för roller de äger.
I Azure SQL Database kan medlemmar i serverrollen ##MS_DefinitionReader## fråga alla katalogvyer.
För mer information, se inställningar för metadatasynlighet.
Examples
Exemplen i det här avsnittet visar hur du arbetar med roller på servernivå i Azure SQL Database.
A. Returlista över serverrollsmedlemmar
Följande exempel visar namn och ID:n för rollerna och deras medlemmar.
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
;
Anmärkning
I Azure SQL Database sparas inte SQL-inloggningar i sys.server_principals katalogvyn. För att hämta rollmedlemskapet på servernivå i Azure SQL Database måste katalogvyn sys.sql_logins därför vara ansluten.
B. Azure SQL Database: Listar alla huvudpersoner (SQL-autentisering) som ingår i en servernivåroll
Följande instruktion returnerar alla medlemmar i en fast servernivåroll med hjälp av katalogvyerna sys.server_role_members och sys.sql_logins. Detta uttalande måste köras i den virtuella huvuddatabasen.
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
Se även
katalogvyer (Transact-SQL)
Säkerhetskatalogvyer (Transact-SQL)
Server-nivåroller
Principals (Database Engine)