この記事はOracle Databaseのユーザー作成SQLです。元の記事の対象に戻し、MySQLのuser@hostやmysql_native_passwordとは区別します。ユーザーを作る操作、ログインの許可、表への権限は別です。
作成前に対象PDBと作業権限を確認する
以下は新しいローカル隔離PDBだけで行う教材です。本番への一括実行、既存ユーザーの作り直しやパスワード変更はしません。CREATE USERにはそのシステム権限、CREATE SESSIONの付与にも付与可能な管理権限が必要です。一般ユーザーがこの文だけで自分へ権限を増やす例ではありません。
CDBのrootとPDBを確認し、意図したPDBのサービスへ接続してから実行します。ローカルユーザーと共通ユーザーは用途/影響範囲が異なります。rootでの名前エラーを消すためにC##を足したり、隠しパラメータを変更したりしません。対象版と既存の運用方針を確認してください。
1. ユーザーを作成する
次は接続済みのPDBで管理者が実行するSQLです。CWIKI_LEARNと公開パスワードは隔離検体専用で、実運用の秘密値として使ってはいけません。新規名であることを先に確認し、同名がある場合は中止して権限/所有物を調べます。CONTAINER=CURRENTも、接続先をPDBへ自動変更する命令ではありません。
-- Scratch PDB only: run as an authorized administrator in the intended PDB.
-- This published password is a fixture, NEVER a production credential.
SELECT SYS_CONTEXT('USERENV', 'CON_NAME') AS container_name FROM dual;
CREATE USER CWIKI_LEARN IDENTIFIED BY "Cwiki_fixture_42!" CONTAINER=CURRENT;
作成直後に一般ユーザーとしてログインできるとは限りません。今回の隔離PDBでは、CREATE SESSIONをまだ与えていない接続がORA-01045になりました。失敗を理由にDBAや広範囲の権限を一括付与しません。
2. ログインの許可を分けて付与する
-- Same scratch PDB and authorized administrator as oracle-create.sql.
GRANT CREATE SESSION TO CWIKI_LEARN;
次は新規ユーザーで同じPDBサービスへ接続した後の読取りSQLです。接続時の実パスワードをコマンド引数/公開ファイル/ログへ残さず、利用するクライアントの秘密入力機能や既存の認証管理を使います。
-- Run after logging in as CWIKI_LEARN to the same PDB service.
SELECT USER, SYS_CONTEXT('USERENV', 'CON_NAME') AS container_name FROM dual;
SELECT privilege FROM user_sys_privs ORDER BY privilege;
CREATE SESSIONはログインの権限で、CREATE TABLEや他スキーマの表へのSELECT/INSERTを含みません。隔離検証でも、ログイン後のCREATE TABLEはORA-01031でした。既存表を読む用途では、所有者等が必要な表にSELECTだけを付与する設計を別に確認します。CREATE ANY TABLEやDBAを通常の接続確認用には使いません。
オプションと権限の役割
| 項目 | 確認すること |
|---|---|
| DEFAULT TABLESPACE | 通常のオブジェクト配置先。指定だけで表作成権限や容量は与えない |
| QUOTA | 指定表領域への割当上限。無制限を既定の解決策にしない |
| TEMPORARY TABLESPACE | 一時処理用。通常表の保存先と区別 |
| PROFILE | 組織のパスワード/資源制限方針に合わせる。ポリシーを無効化して通さない |
| ACCOUNT LOCK / UNLOCK | アカウント状態。作成と利用開始のタイミングを分ける場合もある |
| CREATE SESSION / オブジェクト権限 | 接続とデータ操作は別の許可 |
表の作成/データ領域確保には必要な権限と表領域quota等も関係します。今回の新例は表作成ユーザーの設計ではなく、接続だけから始める限定例です。DDLは通常のデータ更新のようにROLLBACKで全部戻せると考えず、承認された新規検体以外では実行しません。
元の構文・例
元v5のOracleという目的と構文を保持します。[オプション]や日本語の「ユーザ名」「パスワード」は説明用で、そのままSQLへ渡す値ではありません。元例のaaaは弱い公開値で、実運用の秘密値に使わないでください。元の作成例だけではCREATE SESSIONの付与やPDB確認が不足しています。
Oracleのユーザーを作成するSQLの記事です。
【構文】
CREATE USER ユーザ名
IDENTIFIED BY パスワード
[オプション]
;
元例の注意:aaaは公開された弱い値です。この作成例だけではログイン/表の操作権限が与えられず、対象PDBも確認していません。
【例】
CREATE USER test_user
IDENTIFIED BY aaa
;
オプションと権限の役割は上の表に補っています。記載例は学習用で、そのまま本番へ実行しません。
確認範囲と関連情報
2026年10月26日確認。元のOracleという目的を修復し、誤製品のMySQL本文はv6に保持しています。ローカルOracle AI Database 26ai Free 23.26.3.0.0の隔離PDBで作成前後/CREATE SESSION/表の権限を検査しました。PDBのローカルユーザーがrootには存在しないことも確認しましたが、検体のcommon_user_prefixは空であり、標準prefixでの名前拒否を実測したとは扱いません。この検体設定を推奨するものでもありません。既存本番DB/認証設定は変更していません。全Oracle版/外部認証/本番運用や全権限の保証ではありません。
ユーザー関連の親ページから子ページを選択できます。祖先のDDLとSQLの階層は変更しません。
公式資料:Oracle CREATE USER、Oracle GRANTとシステム/オブジェクト権限。
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09