2017-02-03 16 views
0

HRユーザーのロックを解除しようとしています。私は可能な限りすべてを試みましたが、私はそれを達成することができません。Oracle 12CでHRユーザーをロック解除

以下は、私はそれを達成しようとする試みに続いてきた手順は以下のとおりです。

ステップ1:更新私のtnsname.oraファイル

PDBORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = pdborcl) 
    ) 
) 

ステップ2:にCBD$ROOTからコンテナを切り替えますPDBORCL

ステップ3ALTER SESSION SET CONTAINER = pdborcl;

ステップ4ALTER PLUGGABLE DATABASE open;

ステップ5ALTER USER hr IDENTIFIED BY hr ACCOUNT unlock;

ステップ6conn hr/hr @pdborcl;

アップ、ステップ5に予想通り、私はしかし上、うまく機能すべてを取得ステップ6、私はこのエラーを受け取ります:

ORA-01045: hr user lacks create session privileges; logon denied

私は以下のようにログインすることで、権限を付与しよう:

connect sys/password as sysdba; 

grant create session to hr 

結果:grant succeeded。私は

conn hr/hr @pdborcl; 

を実行しているhrスキーマに接続しようとすると、

は今、再び私は再び同じ前のエラーを取得します。

これをどのように説明できますか?

私はSQL DeveloperからSID = pdborclを設定し、私はこのエラーを取得:

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

私が間違っているのは何を、どのように私はこれらのエラーを解決することができますか?

+1

SIDではなくSQL Developerから接続するには、サービス名を使用する必要があります。接続ダイアログで他のオプションを選択してください。しかし、エラーをSQL \ * Plusから修正するまでは、同じORA問題が発生するため、これは面倒な問題です。 –

+0

サービス名、すなわちpdborclを使用して接続しました。接続されています。しかし、なぜそれは、私はHRテーブルを接続後に見ることができません。私は一歩を逃したのですか? – jase

答えて

2

一度sysdbaを使用して接続すると、セッションをpdbに設定し、HRユーザーにセッションアクセスの作成を許可する必要があります。

conn/as sysdba 変更セッションセットコンテナ= pdborcl; HRへのセッションの作成を許可します。 exit sqlplus hr/hr @ pdborcl が接続されています。

+0

なぜ、私は接続後にHRテーブルを見ることができません ここに:sqlplus hr/hr @ pdborcl – jase

+0

HRにテーブルが含まれていない場合、HRが所有するテーブルは表示されません。 –

0

pdbのtnsnames.oraファイルにエントリをもう1つ追加する必要があります。

PDBORCL1 = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = pdborcl1) 
    ) 
) 
関連する問題