You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中db_ddladmin是否拥有读写权限及与相关角色的从属关系

SQL Server db_ddladmin角色权限问题解答

问题1:db_ddladmin角色是否拥有db_datareader对应的数据读取权限、db_datawriter对应的数据写入权限?

默认没有。
db_ddladmin是SQL Server官方提供的内置数据库级角色,核心授权范围仅覆盖数据定义语言(DDL)类操作:包括创建/修改/删除表、视图、存储过程、索引等数据库对象,调整对象所属架构,管理DDL触发器等,默认没有任何用户数据的读写权限。
举个实际场景:仅被授予db_ddladmin角色的用户,即便可以新建一张业务表,也默认无法查询该表的数据,也不能对表做增删改操作,除非额外授予对应用户数据的读写权限,或者将用户加入db_datareader/db_datawriter角色。
你可以通过以下SQL查询内置角色的默认权限自行验证:

SELECT 
    permission_name, 
    state_desc 
FROM sys.database_permissions dp
JOIN sys.database_principals dpri 
    ON dp.grantee_principal_id = dpri.principal_id
WHERE dpri.name = 'db_ddladmin'

问题2:db_datareader、db_datawriter是否属于db_ddladmin角色的子集?

不属于,三个角色是完全独立的权限集合,互相没有包含关系:

  • db_ddladmin:仅拥有DDL操作权限,无用户数据读写权限
  • db_datareader:仅拥有全库所有用户表的查询权限,无DDL操作权限
  • db_datawriter:仅拥有全库所有用户表的增删改权限,无DDL操作权限

如果需要同时持有DDL操作权限和全库数据读写权限,需要将用户同时加入上述三个角色,或者单独授予对应的组合权限。

内容的提问来源于stack exchange,提问作者Abimanyu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:06:09