다음을 통해 공유


sys.server_principals(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Analytics Platform System(PDW)

모든 서버 수준 보안 주체에 대한 행을 포함합니다.

참고 항목

Microsoft Entra ID는 이전의 Azure AD(Azure Active Directory)입니다.

열 이름 데이터 형식 설명
이름 sysname 보안 주체의 이름입니다. 서버 내에서 고유합니다.
principal_id int 보안 주체의 ID 번호입니다. 서버 내에서 고유합니다.
sid varbinary(85) 보안 주체의 SID(보안 식별자)입니다.
Windows 보안 주체의 SID는 해당 Windows SID와 일치합니다.
Microsoft Entra 사용자 ID의 SID는 Microsoft Entra 개체 ID의 이진 표현입니다.
Microsoft Entra 그룹의 SID는 Microsoft Entra 개체 ID의 이진 표현입니다.
Microsoft Entra 애플리케이션의 SID는 Microsoft Entra 클라이언트 ID의 이진 표현입니다.
type char(1) 보안 주체 유형:

S = SQL 로그인
R = 서버 역할

SQL Server, Azure SQL Managed Instance 및 PDW에서 사용 가능(Azure SQL Database의 미리 보기):
E = Microsoft Entra ID의 외부 로그인 또는 애플리케이션
X = Microsoft Entra ID의 외부 그룹

SQL Server, Azure SQL Managed Instance 및 PDW에서 사용 가능(Azure SQL Database 아님):
U = Windows 로그인
G = Windows 그룹
C = 인증서에 매핑된 로그인
K = 비대칭 키에 매핑된 로그인
type_desc nvarchar(60) 보안 주체 유형에 대한 설명입니다.

SQL_LOGIN
SERVER_ROLE

SQL Server, Azure SQL Managed Instance 및 PDW에서 사용 가능(Azure SQL Database의 미리 보기):
EXTERNAL_LOGIN
EXTERNAL_GROUP

SQL Server, Azure SQL Managed Instance 및 PDW에서 사용 가능(Azure SQL Database 아님):
WINDOWS_LOGIN
WINDOWS_GROUP
CERTIFICATE_MAPPED_LOGIN
ASYMMETRIC_KEY_MAPPED_LOGIN
is_disabled int 1 = 로그인을 사용할 수 없습니다.
0 = 로그인을 사용할 수 있습니다.
create_date 날짜/시간 보안 주체가 생성된 시간입니다.
modify_date 날짜/시간 보안 주체 정의가 마지막으로 수정된 시간입니다.
default_database_name sysname 보안 주체의 기본 데이터베이스입니다.
default_language_name sysname 보안 주체의 기본 언어입니다.
credential_id int 보안 주체와 연결된 자격 증명의 ID입니다. 이 보안 주체와 연결된 자격 증명이 없으면 credential_id NULL입니다.
owning_principal_id int 서버 역할 소유자의 principal_id. 보안 주체가 서버 역할이 아닌 경우 NULL입니다.
is_fixed_role bit 보안 주체가 고정 권한이 있는 기본 제공 서버 역할 중 하나인 경우 1을 반환합니다. 자세한 내용은 서버 수준 역할을 참조하세요.

사용 권한

모든 로그인은 자신의 로그인 이름, 시스템 로그인 및 고정 서버 역할을 볼 수 있습니다. 다른 로그인을 보려면 ALTER ANY LOGIN 또는 로그인에 대한 권한이 필요합니다. 사용자 정의 서버 역할을 보려면 ALTER ANY SERVER ROLE 또는 역할의 멤버 자격이 필요합니다.

Azure SQL Database에서는 다음 보안 주체만 모든 로그인을 볼 수 있습니다.

  • 서버 역할의 멤버 ##MS_LoginManager## 또는 의 특수 데이터베이스 역할 loginmanagermaster
  • Microsoft Entra 관리자 및 SQL Server 관리자

사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

예제

다음 쿼리는 서버 보안 주체에 명시적으로 부여되거나 거부된 사용 권한을 나열합니다.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pe.state_desc, pe.permission_name   
FROM sys.server_principals AS pr   
JOIN sys.server_permissions AS pe   
    ON pe.grantee_principal_id = pr.principal_id;  

Important

고정 서버 역할(퍼블릭 이외의)의 권한은 sys.server_permissions 표시되지 않습니다. 따라서 서버 보안 주체는 여기에 나열되지 않은 추가 권한을 가질 수 있습니다.

보안 카탈로그 뷰(Transact-SQL)
카탈로그 보기(Transact-SQL)
보안 주체(데이터베이스 엔진)
사용 권한 계층(데이터베이스 엔진)