
# 查看任意数据库权限变更
#### 操作场景
存储过程可以对指定登录账号设置允许查看任意数据库权限，禁止查看任意数据库后，只能看到master和tempdb数据库，无法看到其他数据库。
#### 注意事项
- 存储过程只允许rdsuser或者创建出的主账号执行，创建的主账号具有和rdsuser相同的权限。创建主账号的存储过程详情请参见[创建主账号](https://support.huaweicloud.com/usermanual-rds-mssql/rds_09_0052.html)。
- 默认情况下，所有用户都为public角色，可以看到实例上所有的数据库，但无法对没有权限的数据库进行访问或编辑。
- 不允许对rdsuser和其他内置账户进行查看数据库权限变更。内置账户详细信息请参考[数据库安全设置](https://support.huaweicloud.com/usermanual-rds-mssql/rds_10_0108.html)。
 
#### 前提条件
成功连接RDS for SQL Server实例。通过SQL Server客户端连接目标实例，具体操作请参见[通过公网连接RDS for SQL Server实例](https://support.huaweicloud.com/usermanual-rds-mssql/rds_mssql_connect_06.html)。
#### 操作步骤
执行以下命令，设置用户是否可以看到所有数据库（不包含master和tempdb数据库）。
```
EXEC master.dbo.rds_view_any_database @user, @action;
```
- @user: 指定用户。
- @action: 指定操作。
  - 'deny'：拒绝用户看到所有数据库。
  
  - 'revoke'：允许用户看到所有数据库。
   
 
#### 示例
- 拒绝用户testuser看到所有数据库，示例如下：
  ```
  EXEC master.dbo.rds_view_any_database 'testuser','deny';
  ```
  
- 允许用户testuser看到所有数据库，示例如下：
  ```
  EXEC master.dbo.rds_view_any_database 'testuser','revoke';
  ```
  
 
