大規模なSQLサーバー2008データベースでパフォーマンスチューニングを行っていますが、ITグループはSHOWPLAN権限を与えたくありません。これまで、「実行プランの表示」は、個々のクエリとプロシージャのパフォーマンスを理解する最も効果的な方法でした。
この許可の付与にはどのようなリスクが内在していますか?データベースの開発用コピーに対するこの制限について正当な正当化はありますか?
注:このSQL ITグループには、単一のSQL Serverインスタンスの下に200以上のデータベースがあります。ありがとう。
Answer:以下の注意事項以外に、重大なセキュリティリスクがないことを意味するために、応答がないと考えています。基本的に、開発データベースでこれを制限することは逆効果です。
誰かがより良い答えを思いついたら、これを更新します。コメントしてくれてありがとう!
Books Onlineの Showplan Security を見てください。
SHOWPLAN
、ALTER 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担当者であり、ユーザーではない場合、このリスクは無視できるようです。