更新时间:2024-09-05 GMT+08:00

查看任意数据库权限变更

操作场景

存储过程可以对指定登录账号设置允许查看任意数据库权限,禁止查看任意数据库后,只能看到master和tempdb数据库,无法看到其他数据库。

注意事项

  • 存储过程只允许rdsuser或者创建出的主账号执行,创建的主账号具有和rdsuser相同的权限。创建主账号的存储过程详情请参见创建主账号
  • 默认情况下,所有用户都为public角色,可以看到实例上所有的数据库,但无法对没有权限的数据库进行访问或编辑。
  • 不允许对rdsuser和其他内置账户进行查看数据库权限变更。内置账户详细信息请参考数据库安全设置

前提条件

成功连接RDS for SQL Server实例。通过SQL Server客户端连接目标实例,具体操作请参见通过公网连接RDS for SQL Server实例

操作步骤

执行以下命令,设置用户是否可以看到所有数据库(不包含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' ;