适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统 (PDW)
Microsoft Fabric 预览版中的 SQL 数据库
“主体”是可以请求 SQL Server 资源的实体。 与 SQL Server 授权模型的其他组件一样,主体也可以按层次结构排列。 主体的影响范围取决于主体定义的范围(Windows、服务器或数据库)以及主体是否不可分或是一个集合。 例如,Windows 登录名就是一个不可分主体,而 Windows 组则是一个集合主体。 每个主体都有一个安全标识符(SID)。 本主题适用于所有版本的 SQL Server,但在 SQL 数据库或 Azure Synapse Analytics 的服务器级别主体上有一些限制。
Note
Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。
SQL Server 级的主体
- SQL Server 身份验证登录名
- Windows 用户的 Windows 身份验证登录名
- Windows 组的 Windows 身份验证登录名
- Microsoft Entra 用户的 Microsoft Entra 身份验证登录
- Microsoft Entra 组的 Microsoft Entra 身份验证登录
- Microsoft Entra 服务主体的身份验证登录
- 服务器角色
数据库级主体
- 数据库用户(有关数据库用户类型的详细信息,请参阅 CREATE USER(Transact-SQL)。)
- 数据库角色
- 应用程序角色
sa 登录
SQL Server sa 登录名是服务器级主体。 默认情况下,在安装实例时会创建该实例。 从 SQL Server 2005 (9.x)开始,默认数据库为 samaster. 这是对早期版本的 SQL Server的行为的更改。
sa 登录名是 sysadmin 固定服务器级别角色的成员。
sa登录在服务器上具有所有权限,无法限制。
sa无法删除登录名,但可以禁用该登录名,以便任何人都无法使用它。
dbo 用户和 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 登录名或用户撤消权限时要小心,因为它会影响所有登录名/用户。 通常,不应拒绝权限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##
这些主体帐户没有管理员可以更改的密码,因为它们基于颁发给Microsoft的证书。
用户guest
每个数据库包括一个 guest的行为的更改。 授予 guest 用户的权限由有权访问数据库但数据库中没有用户帐户的用户继承。
guest用户无法删除,但可以通过撤消其CONNECT权限将其禁用。 可以通过在任何数据库中执行 REVOKE CONNECT FROM GUEST; 来撤销CONNECT权限,但master或tempdb数据库除外。
Limitations
- 在 Microsoft Fabric 预览版中的 SQL 数据库中,仅支持数据库级用户和角色。 服务器级登录名、角色和 sa 帐户不可用。 在 Microsoft Fabric 预览版的 SQL 数据库中,Microsoft数据库用户的 Entra ID 是唯一支持的身份验证方法。 有关详细信息,请参阅 Microsoft Fabric 中的 SQL 数据库中的授权。
相关任务
有关设计权限系统的信息,请参阅数据库引擎权限入门。
SQL Server 联机帮助文档的此部分中包含以下文章: