この記事を作成した経緯
Oracleデータベースを使った開発や検証を始めたいけれど、
「ユーザーの作り方が分からない」「SQL*Plusの接続ってなに?」という壁にぶつかる方は少なくありません。
この記事では、仮想マシンに構築したOracle環境に対して、
ユーザー作成・権限付与・SQL*Plusからの接続・テーブル作成まで、
実際に使えるSQLコマンドとともにやさしく解説します。
Oracle初心者の方でも、この1ページで必要な基本操作をマスターできるはずです。
この記事が想定している読者
Oracle Database 23ai Free VirtualBox Appliance で Oracle DB 23ai環境を構築している方
ユーザー関連
- ユーザー作成
CREATE USER hoge IDENTIFIED BY hogePass
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;
- 権限の付与
①ログイン権限
GRANT CREATE SESSION TO hoge;
②開発用に便利な権限
GRANT CREATE TABLE, CREATE VIEW TO hoge;
③ロールでまとめて付与
GRANT CONNECT, RESOURCE TO hoge;
ユーザー状態の確認
- 登録済みユーザーと状態の確認
SELECT username, account_status FROM dba_users ORDER BY username;
- 権限を持つユーザーの確認
SELECT grantee
FROM dba_sys_privs
WHERE privilege = 'CREATE SESSION'
AND grantee IN (SELECT username FROM dba_users);
- VECTORユーザーの情報確認
SELECT * FROM dba_users WHERE username = 'VECTOR';
SELECT * FROM dba_sys_privs WHERE grantee = 'VECTOR';
テーブル作成
サンプルテーブル USER_TABLE
CREATE TABLE USER_TABLE (
UNO NUMBER,
UNAME VARCHAR2(24),
AGE NUMBER,
BDATE DATE
);
接続とSQL*Plus操作
- SQL*Plusで直接接続する場合
sqlplus hoge/hogePass@localhost:1521/freepdb1
- 接続せずにSQL*Plusを起動(後で CONNECT)
sqlplus /nolog
CONNECT hoge/hogePass@localhost:1521/freepdb1
エラーと対処メモ
エラーコード | 内容と対策例 |
---|---|
SP2-0640 | 未接続状態でSQLを実行 → CONNECT で接続する |
ORA-01031 | 権限が不足している → GRANT で必要な権限を付与 |
ORA-01017 | ユーザー名またはパスワードが不正 |
ORA-28000 | アカウントがロック → ALTER USER ユーザー名 ACCOUNT UNLOCK; |
ORA-12154 / ORA-12514 | 接続識別子やサービス名が不正 → lsnrctl status で確認 |
その他
TeraTermから下記コマンドでcommand not foundが出た場合、
環境変数でORACLE_HOMEを設定できていない可能性があります。
sqlplus /nolog
その際は下記コマンドを実行するとうまくいく場合があります。
※freepdb1をすでに作成している場合
export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree/
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=freepdb1
$ORACLE_HOME/bin/sqlplus sys@localhost:1521/freepdb1 as sysdba
またこちらの方法は毎回exportする必要があるので以下のように
Linux環境のホームディレクトリの/.bash_profileにパスを追加しておくと
毎回コマンドを打たなくて済みます。
※/.bash_profileは隠しファイルだったのでvimで編集しています。
vi ~/.bash_profile
【参考記事】
[SQL:01]sqlplusをどこで実行する?PATHって? | Linux初心者のクラウドサーバあれこれ、AWSのちGCE
いまさら遅い?Oracle Databaseのコンテナ技術
初めてのvim【基本操作編】