主体(数据库引擎)

主体是可以请求 SQL Server 资源的实体。与 SQL Server 授权模型的其他组件一样,主体也可以按层次结构排列。主体的影响范围取决于主体定义的范围(Windows、服务器或数据库)以及主体是否不可分或是一个集合。例如,Windows 登录名就是一个不可分主体,而 Windows 组则是一个集合主体。每个主体都具有一个安全标识符 (SID)。

Windows 级别的主体

  • Windows 域登录名

  • Windows 本地登录名

SQL Server 级的主体

  • SQL Server 登录名

数据库级的主体

  • 数据库用户

  • 数据库角色

  • 应用程序角色

SQL Server sa 登录名

SQL Server sa 登录名是服务器级的主体。默认情况下,该登录名是在安装实例时创建的。在 SQL Server 2005 和 SQL Server 2008 中,sa 的默认数据库为 master。这是对早期版本的 SQL Server 的行为的更改。

public 数据库角色

每个数据库用户都属于 public 数据库角色。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的 public 角色的权限。

INFORMATION_SCHEMA 和 sys

每个数据库都包含两个实体:INFORMATION_SCHEMAsys,它们都作为用户出现在目录视图中。这两个实体是 SQL Server 所必需的。它们不是主体,不能修改或删除它们。

基于证书的 SQL Server 登录名

名称由双井号 (##) 括起来的服务器主体仅供内部系统使用。下列主体是在安装 SQL Server 时通过证书创建,并且不应删除。

  • ##MS_SQLResourceSigningCertificate##

  • ##MS_SQLReplicationSigningCertificate##

  • ##MS_SQLAuthenticatorCertificate##

  • ##MS_AgentSigningCertificate##

  • ##MS_PolicyEventProcessingLogin##

  • ##MS_PolicySigningCertificate##

  • ##MS_PolicyTsqlExecutionLogin##

客户端和数据库服务器

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

有关在 SQL Server 中实现 Kerberos 支持的详细信息,请参阅Kerberos 身份验证与 SQL Server