こんにちは。
今回は、Oracleのユーザ作成と権限付与について紹介していこうと思います。
また、ここからは表領域やREDOログの配置方法などもかかわってくるので、事前にディレクトリ構造を記しておきます。
参考書等をもとに、DBCAを使用してインスタンスを作成すると、以下のような構造になっていることが多いのではないでしょうか。
今回この中で使用するのは、新規にユーザを作成する際に指定するデフォルトの表領域、一時表領域くらいでしょうか。Oracle内部の表領域名と実際のファイル名は異なるのですが、それぞれ、ユーザ表領域=USERS(USERS01.DBF)、一時表領域=TEMP(TEMP01.DBF)を想定しています。
それでは、本題です。
【ユーザの新規作成】
ユーザを新規作成するときは、以下のようにCREATE USER文を使用します。具体例は以下の通りです。
CREATE USER usr IDENTIFIED BY usr
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
基本的にはこれでOKです。ユーザ名usr、パスワードusrのユーザが作成されているかと思います。
早速、usr/usrで接続してみましょう。
…
そうです、単純にユーザを作成しただけでは、インスタンスに接続することすらできません。さらに言うと、INSERTやUPDATEといったSQLの実行すらままなりません。そこで、次の”権限の付与”が必要になるわけです。
【ユーザの権限付与】
ユーザへの権限は、GRANT文で付与します。例えば、先ほどのインスタンスへの接続権限の付与は以下のようになります。
GRANT CREATE SESSION TO usr;
今度はうまくいきましたね。ほかにも、SELECTやUPDATEの権限を追加したい場合はこんな感じになります。
GRANT CREATE TABLE TO usr;
また、INSERT権限などは、テーブル等のオブジェクト単位での付与になります。たとえば、テーブルtestに対してINSERT権限を追加する場合は、以下のような例になります。
GRANT INSERT ON test TO usr;
いかがだったでしょうか。今回は、ユーザの作成と権限の付与について紹介しました。権限はつけすぎてもよくなく、必要十分な権限を付与する必要があります。これからも記事を拡充させていきますので、よろしくお願いします。
コメント