GRANT 文 GRANT 文を使って、データベースにある情報の操作権限を、指定した一人あるいは全ユーザに与えることができます。 GRANT statementSQL statementsGRANT

次の権限を与えることができます。

  • 表からの情報の削除
  • 表への情報の挿入
  • 表あるいは表にある列の部分集合への外部キー制約の作成
  • 表やビュー、表にある列の部分集合からの情報の選択
  • 表へのトリガーの作成
  • 表あるいは表にある列の部分集合の情報の更新
  • 関数あるいは手続きの実行

GRANT文を発行する前に、derby.database.sqlAuthorization属性がtrueであることを確認してください。derby.database.sqlAuthorization属性により、SQL認証が有効になります。

ユーザに権限付与が認められている情報であれば、その情報への権限をユーザは与えることができます。 詳細については、権限を与えようとしている情報に対応したCREATE文の説明文を読んでください。

GRANT文の書き方は、表に対する権限付与なのか、それともプログラムルーチンに対する権限付与なのかにより、その構文が異なります。

表の場合の構文GRANT 権限タイプ ON [TABLE] { | } TO 権限を与えられる人
プログラムルーチンの場合の構文GRANT EXECUTE ON { FUNCTION | PROCEDURE } プログラムルーチンの指示子 TO 権限を与えられる人
表権限 DELETE | INSERT | REFERENCES [列一覧] | SELECT [列一覧] | TRIGGER | UPDATE [列一覧]
列一覧 ( 列識別子 {, 列識別子}* )

ALL PRIVILEGES権限により指定した表へのすべての権限をユーザに付与します。権限の並びを指定して、表への一つ以上の権限を付与することも可能です。

DELETE権限により指定した表から行を削除する権限を付与します。

INSERT権限により指定した表に行を挿入する権限を付与します。

REFERENCES権限により指定した表への外部キー参照を作成する権限を付与します。REFERENCESに合わせて列並びが指定された場合、指定した列への外部キー参照だけが許可されます。

SELECT権限により表あるいはビューでSELECT文を行う権限が付与されます。もしSELECT権限で列の並びが指定された場合、それらの列にのみ権限は有効です。列の並びが指定されなかった場合、表の全列について権限は有効です。

TRIGGER権限により指定した表にトリガを作成する権限が付与されます。

UPDATE権限により指定した表にUPDATE文を使う権限が付与されます。列の並びが指定された場合、権限は指定された列にのみ有効です。WHERE節のある文で行を更新する場合、更新する行にある列へのSELECT権限も必要です。

権限を与えられる人{ 認証識別子 | PUBLIC } [,{ 認証識別子 | PUBLIC } ] *

特定のユーザまたは全ユーザに権限を与えることができます。 PUBLIC というキーワードは全ユーザをあらわします。PUBLICが与えられた場合、現存するユーザのみならず、以降に作成されたユーザにも権限が与えられます。 PUBLICに与えられた権限と、個々のユーザに与えられた権限は、独立しています。 例えば、tという表へのSELECT権限が、PUBLICとharryという認証識別子に対して与えられているとしましょう。この場合は、harryという認証識別子からSELECT権限が剥奪されたとしても、HarryはPUBLICの権限を通して、tという表を操作可能です。

プログラムルーチンの指示子{ 関数名 | 手続きの名前 }

tという表へのSELECT権限をmariaharryという認証識別子に与えるには、次のように書きます。GRANT SELECT ON TABLE t TO maria,harry

tという表へのUPDATEとTRIGGER権限を、anitazhiという認証識別子に与えるには、次のように書きます。GRANT UPDATE, TRIGGER ON TABLE t TO anita,zhi

s.vという表へのSELECT権限を全てのユーザに与えるには、次のように書きます。GRANT SELECT ON TABLE s.v to PUBLIC

pという手続きの実行権限を、georgeという認証識別子に与えるには、次のように書きます。

GRANT EXECUTE ON PROCEDURE p TO george