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

如何在Azure SQL中隐藏数据库?DENY命令报错无法生效的问题

解决Azure SQL中普通登录可见其他数据库的问题

问题原因

Azure SQL Database(单数据库/弹性池模式)不支持服务器范围的VIEW ANY DATABASE权限操作,这就是执行DENY VIEW ANY DATABASE TO [PUBLIC]/[USER1]时报错'Securable class 'server' not supported in the server scope in this version of SQL Server.'的原因。它的权限模型与本地SQL Server存在差异,无法直接在服务器级别批量隐藏所有数据库。

解决方案

要让USER1看不到DATABASE2,需在master数据库中针对单个数据库执行权限限制,操作步骤如下:

  • 以系统管理员身份连接到Azure SQL服务器的master数据库
  • 执行以下命令,拒绝USER1查看DATABASE2的元数据:
    DENY VIEW DEFINITION ON DATABASE::DATABASE2 TO [USER1];
    
  • 再执行撤销默认权限的命令,确保权限彻底生效:
    REVOKE VIEW DEFINITION ON DATABASE::DATABASE2 TO [USER1];
    

完成后,USER1再次连接服务器时,将无法枚举或看到DATABASE2。若需对多个数据库执行此限制,只需替换命令中的DATABASE2为对应数据库名称,重复操作即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:58:28