Oracle XE 11g の初期設定とユーザの作成

Oracle Database Express Edition 11g(Oracle XE 11g)のインストールが終わったら、いくつか初期設定を済ませておきます。

まずCLIのSQLクライアント、sqlplusを使うには、環境変数の設定が必要です。

[root@sakura ~]# . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
[root@sakura ~]#

このシェルを実行することで、Oracleの環境変数が設定されます。~/.bash_profileなどに設定しておきましょう。

[root@sakura ~]# echo ". /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh" >> ~/.bash_profile
[root@sakura ~]# source ~/.bash_profile
[root@sakura ~]#

これでsqlplusなどのコマンドにパスが通ったので使えるようになります。

[root@sakura ~]# sqlplus sys/system as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on 土 3月 31 02:16:20 2018

Copyright (c) 1982, 2011, Oracle.  All rights reserved.



Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL>

コマンドですが、sysはOracleデータベースに最初からインストールされている管理ユーザ(DBA権限)で、systemはOracleインストール後の初期設定で設定したパスワードです。ローカルへ接続しているため、ホスト名は省略されています。~ as sysdbaはDBA権限で接続します、という意味です。

パスワードの有効期限(デフォルト設定)を無期限に設定する

Oracle XE 11gのデフォルト設定では、パスワードの有効期限は180日に設定されています。だいたい忘れたころにユーザーにロックが掛かってログインできなくなるので、先に設定しておきます。まずは、現行の有効期限を確認。

SQL> SELECT
  2      *
  3    FROM
  4      DBA_PROFILES
  5    WHERE
  6      0 = 0 AND
  7      PROFILE = 'DEFAULT' AND
  8      RESOURCE_NAME = 'PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT 
------------------------------ -------------------------------- -------- ---------------------------------------- 
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD 180 

SQL>

以下のSQLで変更します。

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

プロファイルが変更されました。

SQL>
SQL>

もう一度確認してみます。

SQL> SELECT
  2      *
  3    FROM
  4      DBA_PROFILES
  5    WHERE
  6      0 = 0 AND
  7      PROFILE = 'DEFAULT' AND
  8      RESOURCE_NAME = 'PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT 
------------------------------ -------------------------------- -------- ---------------------------------------- 
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD UNLIMITED

SQL>

これで大丈夫(なはず)。

ユーザーがロックされてしまったら。

sqlplusなどでログインしようとして、ユーザーがロックされていたら以下の手順で解除します。

SQL> ALTER USER SAKURA ACCOUNT UNLOCK; 

ユーザーが変更されました。

SQL> ALTER USER SAKURA IDENTIFIED BY SAKURA; 

ユーザーが変更されました。

SQL>

アカウントをアンロックしたうえで、新しいパスワードを設定します。そのあと、上の手順でパスワードの有効期限を無期限にしておけば、面倒な手順を踏む必要がなくなります。ただこれは、開発DBのみにしておいて本番運用のDBでは定期的にパスワードを変更するほうが良いかと思います。

ユーザーを作る方法

Oracleのユーザーを作成する方法は以下のとおり。

SQL> CREATE USER SAKURA IDENTIFIED BY SAKURA;

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

SQL> GRANT DBA TO SAKURA;

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

SQL>

CREATE USER ~でユーザを作成し、 IDENTIFIED BY ~ でパスワードを設定します。GRANT DBA TO <<<ユーザー名>>>;でDBA権限を設定しておきます。DBA権限があれば他のユーザを作成したり、データベースなどの作成ができます。

SQL> SELECT
  2      USERNAME, ACCOUNT_STATUS, LOCK_DATE
  3    FROM
  4      DBA_USERS WHERE USERNAME='SAKURA';

USERNAME                       ACCOUNT_STATUS                   LOCK_DAT
------------------------------ -------------------------------- --------
SAKURA                         OPEN

SQL>

ユーザのステータスを確認します。ACCOUNT_STATUSがOPENになっていれば普通に使えます。LOCKEDやLOCKED & EXPIREDになっていたら、ロックされていたりユーザーの有効期限が切れています。

image

Windowsクライアントから接続できることを確認してみます。

Oracle XEでは、ユーザーを作成すると、デフォルトでユーザー名と同じスキーマが作成されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください