다음을 통해 공유


sys.server_role_members(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance Analytics Platform System (PDW)

고정 서버 역할과 사용자 정의 서버 역할의 각 멤버에 대해 하나의 행을 반환합니다.

열 이름 데이터 형식 설명
role_principal_id int 역할의 서버 주체 ID입니다.
member_principal_id int 멤버의 서버 보안 주체 ID입니다.

서버 역할 멤버 자격을 추가하거나 제거하려면 ALTER SERVER ROLE(Transact-SQL) 문을 사용합니다.

사용 권한

로그인은 자체 서버 역할 멤버 자격을 볼 수 있으며 고정 서버 역할 멤버의 principal_id 볼 수 있습니다. 모든 서버 역할 멤버 자격을 보려면 VIEW ANY DEFINITION 권한 또는 securityadmin 고정 서버 역할의 멤버 자격이 필요합니다.

로그인은 소유한 역할의 역할 멤버 자격을 볼 수도 있습니다.

Azure SQL Database에서 서버 역할 ##MS_DefinitionReader## 의 멤버는 모든 카탈로그 뷰를 쿼리할 수 있습니다.

자세한 내용은 Metadata Visibility Configuration을 참조하세요.

예제

이 섹션의 예에서는 Azure SQL Database에서 서버 수준 역할을 사용하는 방법을 보여 줍니다.

A. 서버 역할 멤버의 반환 목록

다음 예제에서는 역할 및 해당 멤버의 이름과 ID를 반환합니다.

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  
;

참고 항목

Azure SQL Database에서 SQL 로그인은 카탈로그 뷰에 sys.server_principals 유지되지 않습니다. 따라서 Azure SQL Database에서 서버 수준 역할 멤버 자격을 검색하려면 카탈로그 뷰 sys.sql_logins 를 조인해야 합니다.

B. Azure SQL Database: 서버 수준 역할의 멤버인 모든 보안 주체(SQL 인증) 나열

다음 문은 sys.server_role_memberssys.sql_logins 카탈로그 뷰를 사용하여 고정된 서버 수준 역할의 모든 멤버를 반환합니다. 이 명령문은 가상 master 데이터베이스에서 실행되어야 합니다.

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  

참고 항목

카탈로그 보기(Transact-SQL)
보안 카탈로그 뷰(Transact-SQL)
서버 수준 역할
보안 주체(데이터베이스 엔진)