次のようにして、特定のユーザー DB の表示を拒否できます。
DENY VIEW ANY DATABASE TO Myuser
しかし、SSMS 経由でログインするときに、リモート ユーザーが「セキュリティ」、「サーバー オブジェクト」、「レプリケーション」、および「管理」を表示できないようにする方法はありますか?
ありがとう。
次のようにして、特定のユーザー DB の表示を拒否できます。
DENY VIEW ANY DATABASE TO Myuser
しかし、SSMS 経由でログインするときに、リモート ユーザーが「セキュリティ」、「サーバー オブジェクト」、「レプリケーション」、および「管理」を表示できないようにする方法はありますか?
ありがとう。
これらの SSMS カテゴリは、さまざまなサーバー側機能の集合体です。たとえば、[セキュリティ] タブには、[ログイン]、[サーバーの役割]、および [資格情報] が表示されます。「ログイン」ノードを考えてみましょう:
sys.server_principal
所有権を持っているかビュー定義権限を持っているエンティティ (ログイン) に制限されています。CREATE LOGIN
が必要であることを意味します。ALTER ANY LOGIN
ALTER LOGIN
DROP LOGIN
、これには が必要ALTER ANY LOGIN
です。理論的には、ログインで VIEW DEFINITION を拒否し、ユーザーに対して ALTER ANY LOGIN を拒否し、ALTER LOGIN を拒否できますが、ログインの所有権を拒否する ことはできないため、ユーザーにはまだ何かが表示されます (その自分のログイン)。だから負け戦です。非表示にする SSMS の他のパネルに同様の理由を適用すると、同様の結果が得られます。
とはいえ、あなたは間違った角度からこれに取り組んでいます。セキュリティは DENY に依存することはなく、常に GRANT に依存します。ユーザーに不必要な権限を与えるべきではありません。特別な状況を除いて、何かを明示的に否定する必要はありません。