

# 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` サーバーアクセス許可です。詳細については、「[サーバーの権限の拒否](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` にリセットされます。
+ マルチ AZ インスタンスの場合は、プライマリホストの *LOGIN* にのみ `DENY` または `GRANT` アクセス許可を設定します。変更はセカンダリホストに自動的に伝播されます。
+ このアクセス許可は、ログインがデータベース名を表示できるかどうかのみを変更します。ただし、データベースとその内部のオブジェクトへのアクセスは個別に管理されます。