のセキュリティとパフォーマンスへの影響この質問は、さまざまなDMV(動的管理ビュー)に「サーバー状態の表示」権限が必要であることを示していますが、あなたが誰であるかについては何も見つかりません。許可を与えることと望まないこと。

もちろん、「最小限の権限」と、それを誰にも付与したくない理由は理解できましたが、付与すべきかどうかを評価する方法についてのガイドは見つかりませんでした。 。

それで、私の質問:ユーザーに「サーバー状態の表示」権限を付与することのセキュリティとパフォーマンスへの影響は何ですか。許可されるべきではないことを彼らは何ができるのか…

更新: 1つの意味は、ユーザーがDMVを使用してクエリを確認できるようになることです。クエリまたはクエリパラメータに、他の方法では表示できない機密情報が含まれている可能性がある場合、VIEW SERVER STATEを許可すると、表示できるようになります(つまり、dob =またはssn =)。

回答

この権限を付与することで考えられる重大なパフォーマンスの問題はありません。セキュリティの観点から、ユーザーに自分の内容を見せてしまうリスクがあります。弱点に関するほとんどの詳細。たとえば、悪意のあるユーザーが最も一般的な待機統計を表示して、サーバーに対するDoS攻撃を標的にするのに役立つ可能性があります。

これは可能ですか?間違いなく。これは可能ですか? 「いいえ」と言わざるを得ませんが、企業に対する攻撃の90%は内部の攻撃者によるものと推定されていることを忘れないでください。

回答

管理者は、この情報をドメイン内にあると見なします(パフォーマンス/インデックスの使用状況など)が、開発するには説得力のある理由が考えられます。組織は、サポートする大規模なレガシーシステムについてこの情報を必要とします。たとえば、メンテナンスプロセスによってのみ影響を受けるゾンビテーブルを特定します。

最終的には、常に「運と寛大さ」の問題になります。特定の要求が正当化されるかどうかの要求は、最終的にはソフトな選択であり、明確な公式ではないためです。コンテキストを見ずにベストプラクティスパターンを使用すること自体がかなり厄介なアンチパターンであり、多くの人が「手に話しかける」ことを出発点として自分の立場に近づくのが現実です。

回答

パフォーマンスへの影響に関して、私はこの許可またはその他の許可について何も知りません。

に関して:

許可されるべきではないことを彼らができること

簡単に言えば、彼らは物事を見ることができます多分彼らは見るべきではないのです。また、これをSQL Serverだけの観点から考えないでください。この特定のアクセス許可は、 sys.dm_os_sys_info などのDMVやその他の多くのDMVにも適用されます。ホストマシン(ハードウェア、サービスなど)。自分に対してどのような情報を使用できるかを常に知っているとは限りません。また、この権限で許可されているすべてのものが表示されても問題がない場合でも、DMVがサービスパック/累積的な更新プログラムに追加されることがあるため、知らないうちに新しい情報が公開される可能性があります。

許可する必要があるかどうかを評価する方法についてのガイダンスが見つかりません。

必要最小限の権限をユーザーに与えることについてはすでに説明しましたが、実際には、アドホックで使用するために誰かがこの権限を必要としますか?つまり、誰かが独自のクエリを考え出す柔軟性が必要ですか? 1つ以上のストアドプロシージャおよび/またはマルチステートメントTVFの作成は機能しますか?その場合は、ユーザーに権限を付与する必要はありません(その場合、その権限で許可されているものはすべて自由に使用できます)。代わりに、コードに権限を付与します。 (これは、コード化されていることだけを実行します)。モジュール署名は、これを実現する方法です。一般的な概念は次のとおりです。

  1. ストアドプロシージャやマルチステートメントTVFを作成して、目的のアクションを実行します。
  2. これらのモジュールでEXECUTEを付与します。これらのアクションを実行するために必要なユーザーやロールに
  3. 証明書を作成する
  4. その証明書を使用してモジュールに署名します(ADD SIGNATURE
  5. 証明書を[master]データベースにコピーします(つまり、公開鍵を使用して[master]に証明書を作成しますモジュールの署名に使用される証明書の一覧。
  6. [master]
  7. にコピーされた証明書からログインを作成します。レベルの許可その証明書ベースのログインにはnsが必要です(インスタンスレベルのロールへの追加を含めることができます)。

いくつかの例については、以下を参照してください。

回答

これはセキュリティの問題です。次の場合、間違いはありません。 最小特権の原則に従います。つまり、認証プリンシパルが「特定の許可を必要としない場合は、許可しない」ということです。あなたの家についてそれを知る必要のない他の人々にあなたのドアの鍵の種類に関する情報を提供しますか?私はそうしないことを望みます。彼らはおそらく何もしませんが、それでも賢明ではありません。

運と寛大さに基づいてデータの原則に基づいた場合、私たちはかなり頻繁に大きな問題に直面するでしょう。セキュリティは付与した理由を弁護できる場合にのみ付与する必要がある側面。あなたは単に誰かに必要以上の情報を提供しているだけです。しないでください。サーバーの状態は依然として機密です。

コメント

  • 不必要に配布していると誰が言いますか?OPは許可する必要があるかもしれません特定の問題を調査するために誰かにそれを(例えば、sys.dm_db_missing_index_detailsを見て)、彼らはそうすることのリスクが正確に何であるかを知りたがっています。
  • 私は推測します'この質問のマークがありません。'質問に許可の必要性を示すものはありません。
  • @ThomasStringer:質問は' 必要性についてではなく、'について' b>リスク。金銭的に言えば、サーバーがさらされる追加のリスクを知っているかもしれません。そのため、1ペニーにノー、100万ドルにイエスと言うことができます。私は' tですが、やりたいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です