質問

前提条件:

Delphi32で記述されたクライアント/サーバーアプリケーションがあります。 RDBMSはSQL Server 2005です。特定のアプリケーション機能では、ターゲットデータベースでのトリガーの作成/ドロップ(アドホックDDLステートメントを使用するアプリケーションから)が必要です。

問題:

ユーザーがロールsysadminに属している場合、トリガーを作成/削除しても問題はありません。ただし、これはアプリケーションユーザーにとってあまりにも寛容なロールと見なされます。

質問:

  • トリガーの作成/削除に使用できる標準的な最小(つまり、最も制限の厳しい)SQL Serverロールは何ですか?
  • 標準の役割を使用するのではなく、カスタムの役割を作成することで、この問題を解決するためのよりきめ細かいアプローチを構成できますか?
役に立ちましたか?

解決

許可の範囲に応じてさまざまなオプションがあります(データベース内のトリガー、スキーマ内または特定のテーブル内のトリガー)。

一般に、SQL操作に必要な権限はSQLリファレンスに記載されています。例えば。 SQL 2008の CREATE TRIGGER については、こちらを参照してください(&quot ; Permissions")、この場合:

  

DMLトリガーでは、トリガーが作成されるテーブルまたはビューに対するALTER権限が必要です

必要な権限のみを付与したロールを作成し、そのロールにユーザー/グループを追加できます。そのため、最小限のロールは、メンバーに許可する特定のアクセス権のみで作成したロールです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top