ユーザーを作成したら、ユーザーに対してGRANT文で権限を付与します。Oracleの権限には「オブジェクト権限」と「システム権限」があります。

ユーザーに権限を付与する

システム権限

システム権限はデータベースの変更や表領域の作成など、ユーザーがデータベースを操作する権限です。

構文

GRANT {システム権限名} TO {ユーザ名}
      [WITH ADMIN OPTION];

※WITH ADMIN OPTION を指定することで、他のユーザーやロールに対して権限を与えることができます。

主なシステム権限名説明
CREATE USERユーザーを作成する権限。
ALTER USERユーザーを変更する権限。
DROP USERユーザーを削除する権限。
CREATE TABLE自分のスキーマに表を作成する権限。
CREATE ANY TABLE任意のスキーマに表を作成する権限。
ALTER ANY TABLE任意のスキーマの表を変更する権限。
DROP ANY TABLE任意のスキーマの表を削除する権限。
UPDATE ANY TABLE任意のスキーマの表を更新する権限。
DBA管理者用のロールで、ほとんどの管理機能をユーザーが実行できる権限。
データベース・インスタンスの起動または停止の権限は含まれません。


以下はsampleユーザーにDBAロールの権限を付与するGRANT文です。

1
GRANT DBA TO sample;
SQL> GRANT DBA TO sample;

権限付与が成功しました。

 

オブジェクト権限

オブジェクト権限はユーザーがデータベースに対して操作する権限です。

構文

GRANT {オブジェクト権限名} ON {オブジェクト名} TO {ユーザ名}
      [WITH ADMIN OPTION];

※WITH ADMIN OPTION を指定することで、他のユーザーやロールに対して権限を与えることができます。

主なオブジェクト権限名説明
ALTER表などのオブジェクトの定義を変更する権限。
SELECTSELECT文で問合せをする権限。
INSERTINSERT文でレコードを挿入する権限。
UPDATEUPDATE文でレコードを更新する権限。
DELETEDELETE文でレコードを削除する権限。
INDEX表に索引を作成する権限。
EXECUTEプロシージャやファンクションを実行する権限。


以下はsampleユーザーにempテーブルのSELECT権限を付与するGRANT文です。

1
GRANT DBA ON emp TO sample;
SQL> GGRANT DBA ON emp TO sample;

権限付与が成功しました。



以上、Oracleのユーザーに対してGRANT文で権限を付与する方法について解説しました。