Amazon RDS for SQL Server のデータベース名の表示を拒否または許可する
マスターユーザーは 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
サーバーアクセス許可です。詳細については、「サーバーの権限の拒否」を参照してください。 -
権限が
GRANT
(許可) に戻されると、LOGIN
はすべてのデータベースを表示できます。 -
LOGIN
を削除して再作成すると、LOGIN に関連する表示アクセス許可がALLOW
にリセットされます。 -
マルチ AZ インスタンスの場合は、プライマリホストの
LOGIN
にのみDENY
またはGRANT
アクセス許可を設定します。変更はセカンダリホストに自動的に伝播されます。 -
このアクセス許可は、ログインがデータベース名を表示できるかどうかのみを変更します。ただし、データベースとその内部のオブジェクトへのアクセスは個別に管理されます。