Субъекты (компонент Database Engine)Principals (Database Engine)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) 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 или хранилище данных SQL существуют некоторые ограничения на уровне сервера.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;SQL ServerSQL Server authentication Login
  • имя входа для проверки подлинности Windows для пользователя Windows;Windows authentication login for a Windows user
  • имя входа для проверки подлинности Windows для группы Windows;Windows authentication login for a Windows group
  • имя входа для проверки подлинности Azure Active Directory для пользователя AD;Azure Active Directory authentication login for a AD user
  • имя входа для проверки подлинности Azure Active Directory для группы AD.Azure Active Directory authentication login for a AD group
  • Роль сервераServer Role

Субъекты уровня базы данныхDatabase-level principals

  • Пользователь базы данных (существует 12 типов пользователей;Database User (There are 12 types of users. сведения см. в статье об инструкции CREATE USER (Transact-SQL));For more information, see CREATE USER.)
  • Роль базы данныхDatabase Role
  • Роль приложенияApplication Role

Имя входа SAsa 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 2005 (9.x)SQL Server 2005 (9.x)базой данных для имени входа sa по умолчанию является master.Beginning in SQL Server 2005 (9.x)SQL Server 2005 (9.x), 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 server-level 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.

Пользователь и схема dbodbo User and dbo Schema

Пользователь dbo — это особый субъект-пользователя, содержащийся в любой базе данных.The dbo user 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. Будьте внимательны при отмене разрешения для общедоступного имени входа или пользователя, так как это повлияет на все имена входа и на всех пользователей.Be careful when revoking permissions from the public login or user, as it will affect all logins/users. Обычно не следует запрещать разрешения для общедоступной роли public, так как инструкция DENY переопределяет любые инструкции GRANT, которые можно выдать для пользователей.Generally you should not deny permissions to public, because the deny statement overrides any grant statements you might make to individuals.

Пользователи и схемы INFORMATION_SCHEMA и sysINFORMATION_SCHEMA and sys Users and Schemas

Каждая база данных включает в себя две сущности, которые отображены в качестве пользователей в представлениях каталога: INFORMATION_SCHEMA и sys.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##

В учетных записях субъектов нет паролей, доступных для изменения администраторам, так как они основаны на сертификатах, выданных Майкрософт.These principal accounts do not have passwords that can be changed by administrators as they are based on certificates issued to Microsoft.

Пользователь-гость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 можно отменить, выполнив инструкцию REVOKE CONNECT FROM GUEST; в любой базе данных, кроме master или tempdb.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