Oracleの権限(GRANT)とは(システム権限・オブジェクト権限)

Oracleの権限について。

この記事の内容はコチラです

  • 権限とは?
  • 権限がないとどうなる?
  • GRANTの使い方

今回は、Oracleの権限について紹介します!

Oracleの権限とは?

Oracleでテーブルを作成するには「テーブルを作成する権限」をもっていないと作成はできません。テーブルの作成に限らず、何をするにしても権限が必要なのです。

  • システム権限
  • オブジェクト権限

Oralceの権限は「システム権限」「オブジェクト権限」という2種類の権限があります。

システム権限

システム権限はデータベースに対して操作する権限です。

例えば、データベースを変更する権限(ALTER DATABASE)、表領域を作成する権限(CREATE TABLESPACE)、ユーザーを作成する権限(CREATE USER)などです。

オブジェクト権限

オブジェクト権限とはデータベース全体ではなく特定のスキーマに関しての権限になります。

例えば、登録権限(INSERT権限)、削除権限(DELETE権限)などがあります。

権限を付与するGRANTコマンド

では、実際にコマンドで権限を付与してみましょう。

GRANT文

権限付与はGRANT文で行います。まずは権限を付与できるユーザーでログインする必要があります。

ここではsysdbaでログインします。

-- sysdbaでsqlplusへ接続
sqlplus / as sysdba

権限付与できるユーザーでログインできました。権限付与していきます。

-- CREATE TABLE権限をSATOUユーザーへ付与
GRANT CREATE TABLE TO SATOU;

上記コマンドはシステム権限であるCREATE TABLE権限を「SATOU」ユーザーへ付与します。これで「SATOU」はCREATE TABLEが可能となりました。

-- INSERT権限をSATOUのTABLE_Aに対して付与
GRANT INSERT ON TABLE_A TO SATOU;

上記コマンドはオブジェクト権限であるINSERT権限を「SATOU」のTABLE_Aに対して付与します。これで「SATOU」はTABLE_Aに対してINSERTできるようになりました。

権限付与は必要最低限にする

Oracleは権限がないと何もできません。だからといって多くの権限を与えるのはセキュリティ上、好ましくはありません。

権限で重要なことは、「必要最低限な権限のみを付与する」ということです。そして、その「必要最低限」を見極めるのがDBAの仕事であります。

Oracleの権限のまとめ

  • Oracleは権限がないと何も操作できない
  • 権限を付与して使う
  • 権限付与はGRANTコマンド
  • 必要最低限の権限のみを付与するのがポイント

以上、Oracleの権限のまとめでした。

コメント