主体(数据库引擎)

“主体”是可以请求 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 数据库角色。 当尚未对某个用户授予或拒绝对安全对象的特定权限时,该用户将继承对该安全对象 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##

guest 用户

每个数据库包括一个 guest。 授予 guest 用户的权限由对数据库具有访问权限,但在数据库中没有用户帐户的用户继承。 不能删除 guest 用户,但可通过撤消该用户的 CONNECT 权限将其禁用。 可以通过在 master 或 tempdb 以外的任何数据库中执行 REVOKE CONNECT FROM GUEST 来撤消 CONNECT 权限。

客户端和数据库服务器

根据定义,客户端和数据库服务器是安全主体,可以得到保护。 在建立安全的网络连接前,这些实体之间可以互相进行身份验证。 SQL Server 支持 Kerberos 身份验证协议,该协议定义客户端与网络身份验证服务交互的方式。

相关任务

下列主题包括在 SQL Server 联机丛书的本节中:

请参阅

参考

sys.database_principals (Transact-SQL)

sys.server_principals (Transact-SQL)

sys.sql_logins (Transact-SQL)

sys.database_role_members (Transact-SQL)

服务器级别角色

数据库级别的角色

概念

保护 SQL Server