ショープランのアクセス許可のセキュリティに関しては、多少の摩擦があります。
サーバー上に5つのデータベースがあるとします。そして、それぞれにテストと本番の分割があります(合計10)。
システム管理者は1人です。
DB番号#1のデータ、クエリ、テーブル、ビュー、デザイン、構造、インデックスなどを担当する別の人(sysadmin以外)がいます。そしてそれだけ。
DB番号#1のSHOWPLAN/View Server State権限を、その設計、クエリの最適化などの責任者に付与しますか?それとも、非システム管理者に許容できないセキュリティリスクをもたらしますか?
多分それは少し主観的または灰色の領域ですが、私は確信が持てませんでした。これらのリスクを軽減するために導入できる特定のパッチ/手順はありますか?
クエリとクエリの実行時間を最適化する際に、SHOWPLANに代わるものはありますか? sys.sql_expression_dependencies、および関連するサーバー状態の表示権限についてはどうですか?
DB_Development、DB_Test、およびDB_Productionの分割があると主張する人もいます。おそらく理想的ですが、テストと本番の分割を実装するためのリソースしかない場合は、テストへのアクセスだけでリスクを軽減できますか?
セキュリティリスクの詳細については、以下を参照してください。 SHOWPLAN権限とTransact-SQLバッチ :
セキュリティメモ
SHOWPLAN、ALTER TRACE、またはVIEW SERVER STATE権限を持つユーザーは、プラン表示出力でキャプチャされたクエリを表示できます。これらのクエリには、パスワードなどの機密情報が含まれている場合があります。したがって、これらの権限は、db_owner固定データベースロールのメンバーやsysadmin固定サーバーロールのメンバーなど、機密情報の表示を許可されているユーザーにのみ付与することをお勧めします。また、Showplan関連のイベントを含むShowplanファイルまたはトレースファイルのみをNTFSファイルシステムを使用する場所に保存し、機密情報の表示を許可されているユーザーへのアクセスを制限することもお勧めします。