トリガーの作成/削除を許可する最小のSQL Serverロールは何ですか?
-
10-07-2019 - |
質問
前提条件:
Delphi32で記述されたクライアント/サーバーアプリケーションがあります。 RDBMSはSQL Server 2005です。特定のアプリケーション機能では、ターゲットデータベースでのトリガーの作成/ドロップ(アドホックDDLステートメントを使用するアプリケーションから)が必要です。
問題:
ユーザーがロールsysadminに属している場合、トリガーを作成/削除しても問題はありません。ただし、これはアプリケーションユーザーにとってあまりにも寛容なロールと見なされます。
質問:
- トリガーの作成/削除に使用できる標準的な最小(つまり、最も制限の厳しい)SQL Serverロールは何ですか?
- 標準の役割を使用するのではなく、カスタムの役割を作成することで、この問題を解決するためのよりきめ細かいアプローチを構成できますか?
解決
許可の範囲に応じてさまざまなオプションがあります(データベース内のトリガー、スキーマ内または特定のテーブル内のトリガー)。
一般に、SQL操作に必要な権限はSQLリファレンスに記載されています。例えば。 SQL 2008の CREATE TRIGGER
については、こちらを参照してください(&quot ; Permissions")、この場合:
DMLトリガーでは、トリガーが作成されるテーブルまたはビューに対するALTER権限が必要です
必要な権限のみを付与したロールを作成し、そのロールにユーザー/グループを追加できます。そのため、最小限のロールは、メンバーに許可する特定のアクセス権のみで作成したロールです。
所属していません StackOverflow