0

次のようにして、特定のユーザー DB の表示を拒否できます。

DENY VIEW ANY DATABASE TO Myuser

しかし、SSMS 経由でログインするときに、リモート ユーザーが「セキュリティ」、「サーバー オブジェクト」、「レプリケーション」、および「管理」を表示できないようにする方法はありますか?

ありがとう。

4

1 に答える 1

1

これらの SSMS カテゴリは、さまざまなサーバー側機能の集合体です。たとえば、[セキュリティ] タブには、[ログイン]、[サーバーの役割]、および [資格情報] が表示されます。「ログイン」ノードを考えてみましょう:

  • は、既存のログインを示しています。これは のビューであり、このカタログ ビュー内のオブジェクトの可視性は、現在のユーザーがsys.server_principal所有を持っているかビュー定義権限を持っているエンティティ (ログイン) に制限されています。
  • 新しいログインを追加することを許可します。これは、または権限CREATE LOGINが必要であることを意味します。ALTER ANY LOGINALTER LOGIN
  • ログインを削除できます。つまりDROP LOGIN、これには が必要ALTER ANY LOGINです。

理論的には、ログインで VIEW DEFINITION を拒否し、ユーザーに対して ALTER ANY LOGIN を拒否し、ALTER LOGIN を拒否できますが、ログインの所有権を拒否する ことはできないため、ユーザーにはまだ何かが表示されます (その自分のログイン)。だから負け戦です。非表示にする SSMS の他のパネルに同様の理由を適用すると、同様の結果が得られます。

とはいえ、あなたは間違った角度からこれに取り組んでいます。セキュリティは DENY に依存することはなく、常に GRANT に依存します。ユーザーに不必要な権限を与えるべきではありません。特別な状況を除いて、何かを明示的に否定する必要はありません。

于 2009-09-04T20:29:59.933 に答える