다음을 통해 공유


보안 주체(데이터베이스 엔진)

보안 주체는 SQL Server 리소스를 요청할 수 있는 엔터티입니다. SQL Server 권한 부여 모델의 다른 구성 요소와 마찬가지로 보안 주체를 계층 구조로 정렬할 수 있습니다. 보안 주체의 영향 범위는 보안 주체의 정의 범위인 Windows, 서버 및 데이터베이스와 보안 주체가 분해 불가능하거나 컬렉션인지 여부에 따라 달라집니다. Windows 로그인은 나눌 수 없는 보안 주체의 예이며 Windows 그룹은 컬렉션인 보안 주체의 예입니다. 모든 보안 주체에는 SID(보안 식별자)가 있습니다.

Windows 수준 보안 주체

  • Windows 도메인 로그인

  • Windows 로컬 로그인

SQL Server-수준보안 주체

  • SQL Server 로그인

  • 서버 역할

데이터베이스 수준 보안 주체

  • 데이터베이스 사용자

  • 데이터베이스 역할

  • 애플리케이션 역할

SQL Server sa 로그인

SQL Server sa 로그인은 서버 수준 보안 주체입니다. 기본적으로 인스턴스가 설치될 때 만들어집니다. SQL Server 2005부터 sa의 기본 데이터베이스는 master입니다. 이 동작은 이전 버전의 SQL Server에서 변경되었습니다.

공용 데이터베이스 역할

모든 데이터베이스 사용자는 public 데이터베이스 역할에 속합니다. 사용자에게 보안 개체에 대한 특정 사용 권한이 부여되지 않았거나 거부된 경우 사용자는 해당 보안 개체에 대해 public으로 부여된 사용 권한을 상속 받습니다.

INFORMATION_SCHEMA 및 sys

모든 데이터베이스에는 카탈로그 뷰에 사용자로 표시되는 두 엔터티인 INFORMATION_SCHEMA와 sys가 포함됩니다. 이러한 엔터티는 SQL Server에서 필요합니다. 엔터티는 보안 주체가 아니며 수정 또는 삭제할 수 없습니다.

인증서 기반 SQL Server 로그인

이중 해시 표시(##)로 묶인 이름의 서버 주체는 내부 시스템 전용입니다. 다음 보안 주체는 SQL Server가 설치될 때 인증서에서 생성되며 삭제해서는 안 됩니다.

  • ##MS_SQLResourceSigningCertificate##

  • ##MS_SQLReplicationSigningCertificate##

  • ##MS_SQLAuthenticatorCertificate##

  • ##MS_AgentSigningCertificate##

  • ##MS_PolicyEventProcessingLogin##

  • ##MS_PolicySigningCertificate##

  • ##MS_PolicyTsqlExecutionLogin##

게스트 사용자

각 데이터베이스에는 게스트포함됩니다. 게스트 사용자에게 부여된 권한은 데이터베이스에 대한 액세스 권한이 있지만 데이터베이스에 사용자 계정이 없는 사용자가 상속합니다. 게스트 사용자를 삭제할 수는 없지만 사용 권한을 취소하여 CONNECT 사용하지 않도록 설정할 수 있습니다. CONNECT master 또는 tempdb 이외의 데이터베이스 내에서 실행하여 REVOKE CONNECT FROM GUEST 사용 권한을 취소할 수 있습니다.

클라이언트 및 데이터베이스 서버

정의에 따라 클라이언트와 데이터베이스 서버는 보안 주체이며 보안을 설정할 수 있습니다. 보안 네트워크 연결이 설정되기 전에 이러한 엔터티를 상호 인증할 수 있습니다. SQL Server는 클라이언트가 네트워크 인증 서비스와 상호 작용하는 방법을 정의하는 Kerberos 인증 프로토콜을 지원합니다.

다음 항목은 SQL Server 온라인 설명서의 이 섹션에 포함되어 있습니다.

참고 항목

SQL Server 보안
sys.database_principals(Transact-SQL)
sys.server_principals(Transact-SQL)
sys.sql_logins(Transact-SQL)
sys.database_role_members(Transact-SQL)
서버 수준 역할
데이터베이스 수준 역할