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

이 항목은 다음에 적용됩니다. 예SQL Server(2008부터)예Azure SQL Database예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

보안 주체SQL ServerSQL Server 리소스를 요청할 수 있는 엔터티입니다.Principals are entities that can request SQL ServerSQL Server resources. SQL ServerSQL Server 권한 부여 모델의 다른 구성 요소와 같이 보안 주체는 계층으로 정렬될 수 있습니다.Like other components of the SQL ServerSQL Server authorization model, principals can be arranged in a hierarchy. 보안 주체의 영향 범위는 보안 주체의 정의 범위인 Windows, 서버 및 데이터베이스와 보안 주체가 분해 불가능하거나 컬렉션인지 여부에 따라 달라집니다.The scope of influence of a principal depends on the scope of the definition of the principal: Windows, server, database; and whether the principal is indivisible or a collection. 분해 불가능한 보안 주체의 예로는 Windows 로그인을 들 수 있으며 Windows 그룹은 컬렉션인 보안 주체입니다.A Windows Login is an example of an indivisible principal, and a Windows Group is an example of a principal that is a collection. 모든 보안 주체에는 SID(보안 식별자)가 있습니다.Every principal has a security identifier (SID). 이 항목은 모든 버전의 SQL Server에 적용되지만 SQL Database 또는 SQL Data Warehouse의 서버 수준 보안 주체에는 몇 가지 제한 사항이 있습니다.This topic applies to all version of SQL Server, but there are some restictions on server-level principals in SQL Database or SQL Data Warehouse.

SQL Server 수준의 보안 주체SQL Server-level principals

  • SQL ServerSQL Server 인증 로그인 authentication Login
  • Windows 사용자에 대한 Windows 인증 로그인Windows authentication login for a Windows user
  • Windows 그룹에 대한 Windows 인증 로그인Windows authentication login for a Windows group
  • AD 사용자에 대한 Azure Active Directory 인증 로그인Azure Active Directory authentication login for a AD user
  • AD 그룹에 대한 Azure Active Directory 인증 로그인Azure Active Directory authentication login for a AD group
  • 서버 역할Server Role

    데이터베이스 수준의 보안 주체Database-level principals

  • 데이터베이스 사용자(사용자 유형은 11가지입니다.Database User (There are 11 types of users. 자세한 내용은 CREATE USER를 참조하세요.)For more information, see CREATE USER.)

  • 데이터베이스 역할Database Role
  • 응용 프로그램 역할Application Role

sa 로그인sa Login

SQL ServerSQL Server sa 로그인은 서버 수준의 보안 주체로서,The SQL ServerSQL Server sa log in is a server-level principal. 인스턴스를 설치하면 기본적으로 생성됩니다.By default, it is created when an instance is installed. SQL Server 2005SQL Server 2005부터는 sa의 기본 데이터베이스가 master입니다.Beginning in SQL Server 2005SQL Server 2005, the default database of sa is master. 이 동작은 이전 버전의 SQL ServerSQL Server에서 변경되었습니다.This is a change of behavior from earlier versions of SQL ServerSQL Server. sa 로그인은 sysadmin 고정 데이터베이스 역할의 멤버입니다.The sa login is a member of the sysadmin fixed database role. sa 로그인에는 서버에 대한 모든 권한이 부여되며 제한할 수 없습니다.The sa login has all permissions on the server and cannot be limited. sa 로그인은 삭제할 수 없지만 아무도 사용할 수 없도록 해제할 수는 있습니다.The sa login cannot be dropped, but it can be disabled so that no one can use it.

dbo 사용자 및 dbo 스키마dbo User and dbo Schema

dbo 사용자는 각 데이터베이스에서 특수한 사용자 보안 주체입니다.The dbo use is a special user principal in each database. 모든 SQL Server 관리자, sysadmin 고정 서버 역할의 멤버, sa 로그인 및 데이터베이스의 소유자는 데이터베이스를 dbo 사용자로 시작합니다.All SQL Server administrators, members of the sysadmin fixed server role, sa login, and owners of the database, enter databases as the dbo user. dbo 사용자에게는 데이터베이스에 대한 모든 권한이 부여되며 제한하거나 삭제할 수 없습니다.The dbo user has all permissions in the database and cannot be limited or dropped. dbo는 데이터베이스 소유자를 나타내지만 dbo 사용자 계정은 db_owner 고정 데이터베이스 역할과 동일하지 않고 db_owner 고정 데이터베이스 역할은 데이터베이스 소유자로 기록되는 사용자 계정과 동일하지 않습니다.dbo stands for database owner, but the dbouser account is not the same as the db_owner fixed database role, and the db_owner fixed database role is not the same as the user account that is recorded as the owner of the database.
dbo 사용자는 dbo 스키마를 소유합니다.The dbo user owns the dbo schema. dbo 스키마는 일부 다른 스키마를 지정하지 않는 한 모든 사용자에 대한 기본 스키마입니다.The dbo schema is the default schema for all users, unless some other schema is specified. dbo 스키마는 삭제할 수 없습니다.The dbo schema cannot be dropped.

public 서버 역할 및 데이터베이스 역할public Server Role and Database Role

모든 로그인은 public 고정 서버 역할에 속하고 모든 데이터베이스 사용자는 public 데이터베이스 역할에 속합니다.Every login belongs to the public fixed server role, and every database user belongs to the public database role. 로그인이나 사용자에게 보안 개체에 대한 특정 사용 권한이 부여되지 않았거나 거부된 경우 로그인이나 사용자는 해당 보안 개체에 대해 public으로 부여된 사용 권한을 상속받습니다.When a login or user has not been granted or denied specific permissions on a securable, the login or user inherits the permissions granted to public on that securable. public 고정 서버 역할 및 public 고정 데이터베이스 역할은 삭제할 수 없습니다.The public fixed server role and the public fixed database role cannot be dropped. 그러나 public 역할로부터 사용 권한을 취소할 수 있습니다.However you can revoke permissions from the public roles. 기본적으로 public 역할에 할당되는 사용 권한은 많습니다.There are many permissions that are assigned to the public roles by default. 대부분의 이러한 사용 권한은 모든 사용자가 수행할 수 있어야 하는 작업의 유형인 데이터베이스의 일상적인 작업에 필요합니다.Most of these permissions are needed for routine operations in the database; the type of things that everyone should be able to do. public 로그인 또는 사용자로부터 사용 권한을 취소하면 모든 로그인/사용자에 영향을 미치므로 주의해야 합니다.Be careful when revoking permissions from the public login or user, as it will affect all logins/users. deny 문은 개인에 대한 모든 grant 문을 재정의하기 때문에 일반적으로 public에 대한 사용 권한은 거부하면 안 됩니다.Generally you should not deny permissions to public, because the deny statement overrides any grant statements you might make to individuals.

INFORMATION_SCHEMA 및 sys 사용자와 스키마INFORMATION_SCHEMA and sys Users and Schemas

모든 데이터베이스에는 카탈로그 뷰에 사용자로 표시되는 두 엔터티인 INFORMATION_SCHEMAsys가 포함됩니다.Every database includes two entities that appear as users in catalog views: INFORMATION_SCHEMA and sys. 이러한 엔터티는 데이터베이스 엔진 내부에서 사용하는 데 필요하며,These entities are required for internal use by the Database Engine. 수정하거나 삭제할 수 없습니다.They cannot be modified or dropped.

인증서 기반 SQL Server 로그인Certificate-based SQL Server Logins

이름이 이중 해시 표시(##)로 묶인 서버 보안 주체는 내부 시스템 용도로만 사용됩니다.Server principals with names enclosed by double hash marks (##) are for internal system use only. 다음 보안 주체는 SQL ServerSQL Server 를 설치할 때 인증서에서 생성되며 삭제하면 안 됩니다.The following principals are created from certificates when SQL ServerSQL Server is installed, and should not be deleted.

  • ##MS_SQLResourceSigningCertificate####MS_SQLResourceSigningCertificate##
  • ##MS_SQLReplicationSigningCertificate####MS_SQLReplicationSigningCertificate##
  • ##MS_SQLAuthenticatorCertificate####MS_SQLAuthenticatorCertificate##
  • ##MS_AgentSigningCertificate####MS_AgentSigningCertificate##
  • ##MS_PolicyEventProcessingLogin####MS_PolicyEventProcessingLogin##
  • ##MS_PolicySigningCertificate####MS_PolicySigningCertificate##
  • ##MS_PolicyTsqlExecutionLogin####MS_PolicyTsqlExecutionLogin##

guest 사용자The guest User

각 데이터베이스에는 guest에서 변경되었습니다.Each database includes a guest. guest 사용자에게 부여된 권한은 데이터베이스에 대한 액세스 권한이 있지만 데이터베이스에 사용자 계정이 없는 사용자가 상속합니다.Permissions granted to the guest user are inherited by users who have access to the database, but who do not have a user account in the database. guest 사용자는 삭제할 수 없지만 CONNECT 권한을 취소하여 해제할 수 있습니다.The guest user cannot be dropped, but it can be disabled by revoking it's CONNECT permission. CONNECT 권한은 master 또는 tempdb가 아닌 임의의 데이터베이스 내에서 REVOKE CONNECT FROM GUEST;를 실행하여 취소할 수 있습니다.The CONNECT permission can be revoked by executing REVOKE CONNECT FROM GUEST; within any database other than master or tempdb.

권한 시스템 디자인에 대한 정보는 Getting Started with Database Engine Permissions을(를) 참조하세요.For information about designing a permissions system, see Getting Started with Database Engine Permissions.

SQL ServerSQL Server 온라인 설명서 섹션에는 다음과 같은 항목이 포함되어 있습니다.The following topics are included in this section of SQL ServerSQL Server Books Online:

참고 항목See Also

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