参照ユーザの作成方法 Oracle

スポンサーリンク
スポンサーリンク

Oracleで参照用のユーザを作成する方法

テーブルのデータを参照したいけど間違ってテーブルのデータに変更をできないようにして欲しい!って場合に参照用ユーザを作成することがあると思います!ないかな?\(^o^)/以下、参照用のユーザの作成方法です。

CREATE USER文でユーザを作成します。

ユーザ名とかパスワードは好きなものでOKです。表領域とか一時表領域、プロファイルは省略可能だけど指定することをおすすめします。

CREATE USER
    REFERENCE_USER
IDENTIFIED BY
    PASSWORD
DEFAULT TABLESPACE
    USERS
TEMPORARY TABLESPACE
    TEMP
PROFILE
    DEFAULT
;
SQL> CREATE USER
  2      REFERENCE_USER
  3  IDENTIFIED BY
  4      PASSWORD
  5  DEFAULT TABLESPACE
  6      USERS
  7  TEMPORARY TABLESPACE
  8      TEMP
  9  PROFILE
 10      DEFAULT
 11  ;

ユーザーが作成されました。

コネクションロールを付与する。

データベースに接続するためにコネクションロールの設定をします。コネクションロールをつける前に接続しようとすると以下のような「ORA-01045」エラーが発生します。

C:\Users\oracle>sqlplus REFERENCE_USER/PASSWORD

ERROR:
ORA-01045: user REFERENCE_USER lacks CREATE SESSION privilege; logon denied

「GRANT」文でコネクションの権限を付与します。これでデータベースに接続できるようになりました。

GRANT CONNECT TO 
    REFERENCE_USER;
SQL> GRANT CONNECT TO
  2      REFERENCE_USER;

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

SELECT権限をつける。

いまのままだとコネクションの権限しかないのでテーブルの情報が見れません。以下のSQLを発行することで他のユーザのテーブルをSELECTすることが可能になります。

GRANT SELECT ANY TABLE TO 
    REFERENCE_USER;
SQL> GRANT SELECT ANY TABLE TO
  2      REFERENCE_USER;

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

スキーマ名を指定しないとテーブルがないとエラーが発生するので注意が必要です。下記の例は、ADMINスキーマのEMPテーブルをSELECTした結果になります。


SQL> SELECT COUNT(*) FROM EMP;
SELECT COUNT(*) FROM EMP
                     *
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。


SQL> SELECT COUNT(*) FROM ADMIN.EMP;

  COUNT(*)
----------
        14

コメント

タイトルとURLをコピーしました