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

Azure SQL Server实例创建仅能查询指定两张表的用户方法咨询

在Azure SQL Server中创建仅拥有指定表SELECT权限的用户

当然可行,Azure SQL Server完全支持这种精细化的权限控制,通过标准的SQL权限管理语句就能实现。以下是具体操作步骤:

操作步骤

1. 连接到目标数据库

使用具备ALTER ANY USER和GRANT权限的账号(如服务器管理员、数据库所有者),连接到你需要配置权限的目标业务数据库(不要连接master数据库,除非是创建登录名环节)。

2. 创建数据库用户

根据你使用的身份类型选择对应操作:

  • SQL登录用户:
-- 先在master数据库创建登录名
USE master;
CREATE LOGIN [LimitedTableUser] WITH PASSWORD = 'YourStrongPasswordHere!';
GO

-- 切换到目标数据库创建关联的数据库用户
USE [YourTargetDBName];
CREATE USER [LimitedTableUser] FOR LOGIN [LimitedTableUser];
GO
  • Azure AD用户:
USE [YourTargetDBName];
CREATE USER [limiteduser@yourdomain.com] FROM EXTERNAL PROVIDER;
GO

3. 授予指定表的SELECT权限

直接对用户授予两张目标表的查询权限:

USE [YourTargetDBName];
-- 替换SchemaName、TableName为实际架构和表名,默认架构是dbo
GRANT SELECT ON [SchemaName].[TargetTable1] TO [LimitedTableUser];
GRANT SELECT ON [SchemaName].[TargetTable2] TO [LimitedTableUser];
GO

4. (可选)用自定义角色统一管理权限

如果后续要给多个用户分配相同权限,建议创建自定义角色来统一维护:

USE [YourTargetDBName];
-- 创建自定义角色
CREATE ROLE [TableSelectOnlyRole] AUTHORIZATION [dbo];
-- 给角色授予权限
GRANT SELECT ON [SchemaName].[TargetTable1] TO [TableSelectOnlyRole];
GRANT SELECT ON [SchemaName].[TargetTable2] TO [TableSelectOnlyRole];
-- 将用户添加到角色
ALTER ROLE [TableSelectOnlyRole] ADD MEMBER [LimitedTableUser];
GO

验证权限

用创建的用户登录后,执行以下语句验证:

-- 可以正常查询授权表
SELECT * FROM [SchemaName].[TargetTable1];
SELECT * FROM [SchemaName].[TargetTable2];

-- 查询未授权表会返回权限不足错误
SELECT * FROM [SchemaName].[OtherTable];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:50:23