

# 拒绝或支持查看 Amazon RDS for SQL Server 的数据库名称
<a name="Appendix.SQLServer.CommonDBATasks.ManageView"></a>

主用户无法设置 `DENY VIEW ANY DATABASE TO LOGIN` 来向用户隐藏数据库。要更改此权限，请改用以下存储过程：
+ 拒绝 *LOGIN* 的数据库视图访问权限：

  ```
  EXEC msdb.dbo.rds_manage_view_db_permission @permission=‘DENY’, @server_principal=‘LOGIN’  
  go
  ```
+ 支持 *LOGIN* 的数据库视图访问权限：

  ```
  EXEC msdb.dbo.rds_manage_view_db_permission @permission='GRANT', @server_principal='LOGIN' 
   go
  ```

使用此存储过程时，请注意以下事项：
+ 数据库名称对于 SSMS 和内部 DMV（动态管理视图）处于隐藏状态。但是，仍然可以从审计、日志和元数据表中看到数据库名称。这些是受保护的 `VIEW ANY DATABASE` 服务器权限。有关更多信息，请参阅 [DENY Server Permissions](https://learn.microsoft.com/en-us/sql/t-sql/statements/deny-server-permissions-transact-sql?view=sql-server-ver16#permissions)。
+ 一旦权限恢复为 `GRANT`（支持），*LOGIN* 就可以查看所有数据库。
+ 如果您删除并重新创建 *LOGIN*，则与 LOGIN 相关的查看权限将重置为 `ALLOW`。
+ 对于多可用区实例，仅在主要主机上为 *LOGIN* 设置 `DENY` 或 `GRANT` 权限。更改会自动传播到辅助主机。
+ 此权限仅更改登录名是否可以查看数据库名称。但是，对数据库和其中对象的访问权限是单独管理的。