GRANT 文を使って、データベースにある情報の操作権限を、指定した一人あるいは全ユーザに与えることができます。
GRANT文を発行する前に、derby.database.sqlAuthorization属性がtrueであることを確認してください。derby.database.sqlAuthorization属性により、SQL認証が有効になります。
ユーザに権限付与が認められている情報であれば、その情報への権限をユーザは与えることができます。 詳細については、権限を与えようとしている情報に対応したCREATE文の説明文を読んでください。
GRANT文の書き方は、表に対する権限付与なのか、それともプログラムルーチンに対する権限付与なのかにより、その構文が異なります。
GRANT EXECUTE ON { FUNCTION | PROCEDURE } プログラムルーチンの指示子 TO 権限を与えられる人
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という表を操作可能です。
GRANT SELECT ON TABLE t TO maria,harry
GRANT UPDATE, TRIGGER ON TABLE t TO anita,zhi
GRANT SELECT ON TABLE s.v to PUBLIC
pという手続きの実行権限を、georgeという認証識別子に与えるには、次のように書きます。
GRANT EXECUTE ON PROCEDURE p TO george