主体(数据库引擎)
“主体”是可以请求 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.database_role_members (Transact-SQL)