web-dev-qa-db-ja.com

Oracle 12c作成ユーザー

Enterprise Oracle Database Systemでのユーザーの作成に問題があります。のようなコマンドを使用してユーザーを作成できませんでした

create user name identified by password;

例外のため:

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

だから私はグーグルで解決策を見つけました:

alter session set container=PDBORCL;

そしてその後-仕事です。ユーザーが作成されました。

しかし、私はこのアカウントにログインできません。なにが問題ですか?このアカウントにすべての特権を追加します(もちろん、CREATE SESSIONも追加します)。エラーが発生しました:

ORA-01017:ユーザー名/パスワードが無効です。ログインが拒否されました。

一体何が起こっているのですか?

10

プラグ可能なデータベースのいずれかを管理できるユーザーを作成する場合は、ユーザー名の前にC##を付けます。

例えば:

create user c##name identified by password;
8
Philᵀᴹ

問題を理解するには、以下を参照してください

enter image description here

そのため、ユーザーSYSTEMを使用してpdbに接続している場合でも、pdbを指定せずにconnectを発行すると、コンテナーに接続しようとし、ユーザーはそこで定義されません。

4
Tamas

スクリプトにプレフィックスを付けることもできます

alter session set "_Oracle_SCRIPT"=true;

http://www.dba-Oracle.com/t_ora_65096_create_user_12c_without_c_prefix.htm

4
mistapink

これは12cの新機能です-マルチテナントアーキテクチャ:

http://docs.Oracle.com/cd/E16655_01/server.121/e17633/cdblogic.htm#CNCPT89248

1つ以上のプラガブルデータベース(PDB)の管理を目的としたルートコンテナーデータベース(CDB)にユーザーを作成しようとしました。

3
Andrew Brennan

Pdbにユーザーを作成しました。新しく作成されたユーザーと接続できるようにするには、そのpdbに接続する必要があります。ユーザーは共通のユーザーでない場合、そのpdbだけが知っているからです。正しいpdbに接続するには、接続文字列で正しいサービス名を指定する必要があります。

2
steve

次の行でセッションを作成するために許可を与える必要がありますか?

GRANT CREATE SESSION TO USERNAME WITH ADMIN OPTION;
0
Angel