1

ユーザーがログインしてクエリを作成し、SQL 2012 サーバーに対して実行できるシステムを使用しています。システムは、許可するクエリに関してかなり寛容である必要があるため、ユーザーが想定されていないことを実行するのを防ぐために、SQL 許可に頼っています。

優先順位の逆転のようなことがまだ起こるのではないかと心配しています。特権のないユーザーがログインし、悪用するテーブルを見つけて、そのテーブルに対して 12 回ほどの外部結合を実行したとします。または、単にトランザクションを開始し、それを決して閉じません。

権限のないユーザーが、より権限のあるユーザーからの重要なプロセスをブロックできないようにしたいと考えています。これを行うためにリソース ガバナーを使用することを考えていますが、心配する必要がある他の問題がある場合、これが最善の方法かどうかはわかりません。

特権のないユーザーからのクエリが重要なプロセスをブロックしないようにする最善の方法は何ですか?

4

2 に答える 2

2

リソース ガバナーは、任意のユーザーのリソース (メモリ、CPU) のみを制限できます。優先度の逆転を防ぐことはできず、優先度の逆転が発生した場合、リソースガバナーはそれを長持ちさせるだけです。

ユーザーがブロックを引き起こす可能性がある場合は、ユーザーを安全なプレイグラウンド (スタンバイ レプリカなど) に移動するか、ブロックを積極的に監視する必要があります。操作する余地はあまりありません。これらのユーザーが R/O 操作のみを行う場合は、スナップショット分離を使用してブロックを回避できます。

于 2013-03-11T15:27:29.373 に答える
0

同様の要件に遭遇し、最終的には、特権のないユーザー向けのフェールオーバーSQLServer2008ボックスのデータベーススナップショットに目を向けました。これにより、優先度の高い分離が可能になり、フェイルオーバーハードウェアをより有効に活用できるようになりました。

SQL Server 2012を使用しているので、AlwaysOnを調べています。完璧ではありませんが、HA環境がある場合は、検討する価値があります。このページの下部にAlwaysOnホワイトペーパーがあります:http://www.microsoft.com/en-us/sqlserver/solutions-technologies/mission-critical-operations/high-availability.aspx

于 2013-03-12T15:21:41.757 に答える