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

Azure SQL中如何使用RBAC为特定表授予只读权限?(新手求助)

在Azure SQL中为特定表配置只读权限的步骤

一、权限模型说明

Azure SQL的RBAC(基于角色的访问控制)主要负责服务器/数据库级的管理权限(如创建数据库、查看监控),而表级的细粒度权限需要结合数据库内部的SQL权限体系实现。要给特定表设置只读权限,需先让用户能访问数据库,再授予表的SELECT权限。

二、具体操作步骤

方式1:Azure门户 + T-SQL(新手友好)

1. 配置数据库访问用户

  • Azure AD用户/组:先在Azure SQL服务器的「Azure Active Directory」页面设置AD管理员,再在目标数据库执行:
    USE [你的数据库名];
    CREATE USER [AzureAD账户名] FROM EXTERNAL PROVIDER;
    
  • SQL登录用户:在Azure SQL服务器的「安全性-登录名」创建SQL登录,再在目标数据库执行:
    USE [你的数据库名];
    CREATE USER [SQL用户名] FOR LOGIN [SQL登录名];
    

2. 创建自定义只读角色(推荐批量管理)

如果需要给多个用户配置相同权限,先创建数据库级角色:

USE [你的数据库名];
CREATE ROLE [TableReadOnlyRole];

3. 授予表只读权限

给角色或用户直接授予目标表的SELECT权限:

USE [你的数据库名];
-- 给角色授权
GRANT SELECT ON [你的表名] TO [TableReadOnlyRole];
-- 直接给用户授权
GRANT SELECT ON [你的表名] TO [用户名];

4. 关联用户与角色(若使用角色)

USE [你的数据库名];
ALTER ROLE [TableReadOnlyRole] ADD MEMBER [用户名];

方式2:纯T-SQL脚本一键完成

如果使用SSMS或Azure Data Studio,直接执行以下脚本:

-- 切换到目标数据库
USE [你的数据库名];

-- 创建SQL用户(AD用户替换为CREATE USER ... FROM EXTERNAL PROVIDER)
CREATE USER [ReadOnlyUser] FOR LOGIN [ReadOnlyLogin];

-- 创建自定义只读角色
CREATE ROLE [SpecificTableReadOnlyRole];

-- 授予角色目标表的SELECT权限
GRANT SELECT ON [dbo.你的表名] TO [SpecificTableReadOnlyRole];

-- 将用户加入角色
ALTER ROLE [SpecificTableReadOnlyRole] ADD MEMBER [ReadOnlyUser];

三、验证权限

用目标用户登录后,执行以下命令验证:

SELECT * FROM [你的表名]; -- 正常返回数据则只读权限生效
INSERT INTO [你的表名] (列名) VALUES (测试值); -- 提示权限不足则验证成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 20:54:58