web-dev-qa-db-ja.com

ユーザーにSQL ServerのSHOWPLAN権限を付与することにリスクはありますか?

大規模なSQLサーバー2008データベースでパフォーマンスチューニングを行っていますが、ITグループはSHOWPLAN権限を与えたくありません。これまで、「実行プランの表示」は、個々のクエリとプロシージャのパフォーマンスを理解する最も効果的な方法でした。

この許可の付与にはどのようなリスクが内在していますか?データベースの開発用コピーに対するこの制限について正当な正当化はありますか?

注:このSQL ITグループには、単一のSQL Serverインスタンスの下に200以上のデータベースがあります。ありがとう。

Answer:以下の注意事項以外に、重大なセキュリティリスクがないことを意味するために、応答がないと考えています。基本的に、開発データベースでこれを制限することは逆効果です。

誰かがより良い答えを思いついたら、これを更新します。コメントしてくれてありがとう!

23
RaoulRubin

Books Onlineの Showplan Security を見てください。

SHOWPLANALTER TRACE、またはVIEW SERVER STATE権限は、プラン表示出力でキャプチャされたクエリを表示できます。これらのクエリには、パスワードなどの機密情報が含まれている場合があります。したがって、これらの権限は、db_owner固定データベースロールのメンバーやメンバーなど、機密情報の表示を許可されているユーザーにのみ付与することをお勧めしますsysadmin固定サーバーロールの。また、Showplan関連のイベントを含むShowplanファイルまたはトレースファイルのみをNTFSファイルシステムを使用する場所に保存し、機密情報の表示を許可されているユーザーへのアクセスを制限することもお勧めします。

たとえば、次のクエリについて考えます。

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 

悪意のあるユーザーがこの例のような一連のクエリのShowplan出力を生成し、述語の値 "10"を毎回異なる定数で置き換える場合、ユーザーはcolumn_1intable_1推定行数を読み取ります。

特にこれが開発サーバーであり、すべてのクエリがfrom開発者とIT担当者であり、ユーザーではない場合、このリスクは無視できるようです。

19
user5094