GRANT 文

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

次の権限を与えることができます。
  • 表からの情報の削除
  • 表への情報の挿入
  • 表あるいは表にある列の部分集合への外部キー制約の作成
  • 表やビュー、表にある列の部分集合からの情報の選択
  • 表へのトリガーの作成
  • 表あるいは表にある列の部分集合の情報の更新
  • 関数あるいは手続きの実行

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 
関連資料
REVOKE 文
SYSTABLEPERMS システム表
SYSCOLPERMS システム表