Субъекты (компонент Database Engine)
Применимо: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Субъекты — это сущности , которые могут запрашивать ресурсы SQL Server. Как и другие компоненты модели авторизации SQL Server, субъекты могут быть организованы в иерархии. Область влияния субъекта зависит от его области определения (Windows, сервер, база данных) и того, неделимый это субъект или коллективный. Имя входа Windows является примером индивидуального (неделимого) субъекта, а группа Windows — коллективного. Каждый субъект имеет идентификатор безопасности (SID). Этот раздел относится ко всем версиям SQL Server, но в База данных SQL или Azure Synapse Analytics существуют некоторые ограничения на уровне сервера.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Субъекты уровня SQL Server:
- Имя входа проверки подлинности SQL Server
- имя входа для проверки подлинности Windows для пользователя Windows;
- имя входа для проверки подлинности Windows для группы Windows;
- Имя входа проверки подлинности Microsoft Entra для пользователя Microsoft Entra
- Имя входа проверки подлинности Microsoft Entra для группы Microsoft Entra
- Роль сервера
Субъекты уровня базы данных
- Пользователь базы данных (существует 12 типов пользователей. Дополнительные сведения см. в разделе CREATE USER.)
- Роль базы данных
- Роль приложения
Имя входа SA
Имя входа SQL Server sa
— это субъект уровня сервера. По умолчанию оно создается при установке экземпляра. Начиная с SQL Server 2005 (9.x), база данных sa по умолчанию является главной. Это изменение поведения с более ранних версий SQL Server. Имя входа sa
является участником предопределенной роли сервера sysadmin
. sa
имеет все разрешения на сервере и не может быть ограничено. Имя входа sa
нельзя удалить, но его можно отключить, чтобы никто не смог его использовать.
Пользователь и схема dbo
Пользователь dbo
— это особый субъект-пользователя, содержащийся в любой базе данных. Все администраторы SQL Server, участники предопределенной роли сервера sysadmin
, имя входа sa
и владельцы баз данных подключаются к базам данных в качестве пользователя dbo
. Пользователь dbo
имеет все разрешения в базе данных и не может быть ограничен или удален. dbo
означает владельца базы данных, но учетная запись пользователя dbo
не совпадает с предопределенной ролью базы данных db_owner
, а предопределенная роль базы данных db_owner
не соответствует учетной записи пользователя, помеченной как владелец базы данных.
Пользователь dbo
является владельцем схемы dbo
. Если не указана другая схема, то схема dbo
является схемой по умолчанию для всех пользователей. Схема dbo
не может быть удалена.
Роль сервера public и роль базы данных
Каждое имя входа принадлежит к предопределенной роли сервера public
, а каждый пользователь базы данных является участником роли базы данных public
. Если имени входа или пользователю не были предоставлены или запрещены особые разрешения на доступ к защищаемому объекту, то они наследуют для него разрешения роли public. Предопределенная роль сервера public
и предопределенная роль базы данных public
не могут быть удалены. Однако можно отменить разрешения для ролей public
. Существует множество разрешений, назначенных ролям public
по умолчанию. Большая часть этих разрешений необходимы для выполнения повседневных операций в базе данных (операции, которые должен выполнять каждый). Будьте внимательны при отмене разрешения для общедоступного имени входа или пользователя, так как это повлияет на все имена входа и на всех пользователей. Обычно не следует запрещать разрешения для общедоступной роли public, так как инструкция DENY переопределяет любые инструкции GRANT, которые можно выдать для пользователей.
Пользователи и схемы INFORMATION_SCHEMA и sys
Каждая база данных включает в себя две сущности, которые отображены в качестве пользователей в представлениях каталога: INFORMATION_SCHEMA
и sys
. Они необходимы для внутреннего применения ядром СУБД. Их нельзя изменить или удалить.
Имена входа SQL Server на основе сертификата
Субъекты уровня сервера, имеющие имена, заключенные в хэш-символы (##), — только для внутреннего системного пользования. Следующие субъекты создаются из сертификатов при установке SQL Server и не должны удаляться.
- ##MS_SQLResourceSigningCertificate##
- ##MS_SQLReplicationSigningCertificate##
- ##MS_SQLAuthenticatorCertificate##
- ##MS_AgentSigningCertificate##
- ##MS_PolicyEventProcessingLogin##
- ##MS_PolicySigningCertificate##
- ##MS_PolicyTsqlExecutionLogin##
В учетных записях субъектов нет паролей, доступных для изменения администраторам, так как они основаны на сертификатах, выданных Майкрософт.
Пользователь-гость
Каждая база данных включает в себя пользователя guest
. Разрешения, предоставленные пользователю guest
, наследуются пользователями, которые имеют доступ к базе данных, но не обладают учетной записью пользователя в ней. Пользователя guest
нельзя удалить, но его можно отключить, если отменить его разрешение CONNECT. Разрешение CONNECT можно отменить, выполнив инструкцию REVOKE CONNECT FROM GUEST;
в любой базе данных, кроме master
или tempdb
.
Связанные задачи
Сведения о проектировании системы разрешений см. в статье Getting Started with Database Engine Permissions.
В этом разделе приведены следующие разделы, посвященные электронной документации по 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)
Роли уровня сервера
Роли уровня базы данных