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

如何为SQL Server 2019用户仅授予创建/删除视图权限?

解决方案:实现SQL Server用户只读+仅创建/删除视图的权限

针对你的需求(数据库只读,仅允许CREATE/DROP VIEW,禁止CREATE/DROP表、架构、数据库),可以通过以下权限组合实现,避免直接授予架构ALTER带来的过度权限:

核心思路

通过专属隔离架构限制用户视图的创建范围,结合数据库级权限和内置角色,精准控制操作边界:

步骤1:创建用户专属视图架构

为用户创建独立架构存放其视图,避免影响其他架构对象:

CREATE SCHEMA [User_Views]; -- 可替换为自定义架构名

步骤2:授予用户对专属架构的控制权

让用户能在该架构内创建、删除自己的视图:

GRANT CONTROL ON SCHEMA::[User_Views] TO [你的用户名];

步骤3:授予数据库级创建视图权限

允许用户在数据库内创建视图(结合专属架构限制,实际仅能在自己的架构内操作):

GRANT CREATE VIEW TO [你的用户名];

步骤4:授予数据库只读权限

通过内置角色db_datareader赋予用户所有表、视图的只读访问权:

ALTER ROLE db_datareader ADD MEMBER [你的用户名];

步骤5:禁用敏感权限(安全加固)

明确拒绝用户创建表、修改架构/数据库等操作:

-- 禁止创建表
DENY CREATE TABLE TO [你的用户名];
-- 禁止修改任何架构(专属架构的CONTROL权限已覆盖必要操作)
DENY ALTER ANY SCHEMA TO [你的用户名];
-- 禁止修改数据库配置
DENY ALTER ANY DATABASE TO [你的用户名];

权限验证

执行完上述操作后,用户将具备:

  • 对数据库所有表、视图的只读访问权
  • 仅能在User_Views架构内创建和删除视图
  • 无法创建/删除表、修改其他架构或数据库配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:10:36