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## 또는 의 특수 데이터베이스 역할 loginmanager
master
- 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)
보안 주체(데이터베이스 엔진)
사용 권한 계층(데이터베이스 엔진)