ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Oracle XEで開発用DBを準備する

Oracle Database Express Edition (XE) Downloads | Oracle 日本 公式サイトでインストーラーをダウンロード

圧縮を展開しSetupを進めると管理者用パスワードを聞いてくるので設定し、インストールをすすめる。

  • リスナーを確認
SQL> lsnrctl status;

Enterprise Managerへ接続 ※パスワードはインストール時に設定したパスワード

とりあえず、ここまでこれば、A5SQL Mk-2などで接続可能になる。

一旦、パスワードの有効期間を無制限に設定する。(開発用のため)

sqlplus sys/{password} as sysdba
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

ORA-65096: 共通ユーザーまたはロール名が無効です

ユーザー追加時、このエラーになる場合の対策。 ※Oracle 12以降はコンテナ・データベース(CDB)とプラガブル・データベース(PDB)と呼ばれる子DBが存在するため、sysなどのユーザーはCDBに接続した状態となり、common userしか追加できない状態となる。

  • 現在接続中のCDBを確認
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
  • PDBのリストとOPEN_MODEを確認
SQL>  select name, open_mode from v$pdbs;
NAME        OPEN_MODE
------------------------------
PDB$SEED    READ ONLY
XEPDB1      READ WRITE

-> PDB名は「XEPDB1」

  • PDBを変更する
SQL> alter session set container = XEPDB1;
セッションが変更されました。
SQL> show con_name;
CON_NAME
------------------------------
XEPDB1
  • ユーザーを追加
SQL> CREATE USER my_db IDENTIFIED BY "password"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
  • 権限などを設定
SQL> GRANT UNLIMITED TABLESPACE TO my_db;
SQL> GRANT "DBA" TO my_db;
SQL> ALTER USER my_db DEFAULT ROLE ALL;

作ったユーザーでDB接続

注意:サービス名は「lsnrctl status」で確認出来る正しい名にしないとエラーにある。

「ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。」このエラーになり、少し時間を浪費してしまった。 これで、開発用DBが準備できた。