ユーザーを作成したら、ユーザーに対して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文です。

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文です。

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

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



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