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

Azure Synapse Analytics湖数据库中配置用户仅可见指定数据库的权限问题

Azure Synapse Analytics湖数据库中配置用户仅可见指定数据库的权限问题

你遇到的这个问题其实挺常见的——默认情况下,所有登录用户都会通过public角色获得查看所有数据库的权限,而直接拒绝public的VIEW ANY DATABASE权限又会导致用户连登录都失败,因为系统默认需要用户能看到至少一个数据库才能正常登录。咱们一步步来解决:

第一步:先恢复public角色的默认权限

先把之前对public的拒绝操作撤销,不然后续的权限配置没法正常生效:

USE master;
GO
REVOKE DENY VIEW ANY DATABASE TO public;
GO

第二步:限制目标用户的全局数据库查看权限

接下来,针对你要限制的用户(也就是Alias@something.onmicrosoft.com这个登录账号),拒绝他查看所有数据库的全局权限:

USE master;
GO
DENY VIEW ANY DATABASE TO [Alias@something.onmicrosoft.com];
GO

第三步:授予用户查看指定数据库的权限

现在用户默认看不到任何数据库了,咱们给他单独授权查看MyDB的权限:

USE master;
GO
GRANT VIEW DEFINITION ON DATABASE::MyDB TO [Alias@something.onmicrosoft.com];
GO

第四步:确认目标数据库的读取权限正常

这一步你之前已经配置过了,不过可以再确认下:

USE MyDB;
GO
ALTER ROLE db_datareader ADD MEMBER Alias;
GO

这样配置完成后,用户登录SSMS连接无服务器SQL端点时,就只能看到MyDB这一个数据库了,而且只能读取里面的数据,其他数据库会被完全隐藏。

需要注意的是,在Azure Synapse无服务器SQL环境中,权限继承逻辑和传统SQL Server略有差异,但这套配置逻辑完全适用。之后如果要调整其他用户的权限,也可以按照这个思路来:先限制全局查看权限,再单独授权指定数据库的访问权限。

备注:内容来源于stack exchange,提问作者Slow Snail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 09:33:05