とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

DBLINK経由のcreate user はできません。

DBLINK経由のcreate user はできません。

といいますか、DDLができません。

原理的にはいける気がしてやってみました。
例1)

#まずは普通にログインして

$ sqlplus test/test

接続されました。

SQL> select * from test@link
2 ;

SEQ

                  • -

NAME

                                                                                                                                                              • -

1
test

うん、確かにDBLINKは張られているぞ!!

しかし、この状況からCREATEは付加なぜなら、

ユーザ作成するSQLのどこに@linkをつけろと???

SQL>CREATE USER HOGE1 IDENTIFIED BY HOGEHOGE;


気持ち程度に最後につけて見たりしてみました。

SQL>CREATE USER HOGE1 IDENTIFIED BY HOGEHOGE@link


まぁ無理さねw

調べてみましたが、やはりCREATE USER にはそんなオプションはございません。


って事で、このやり方は無理。

例2)

損じゃログイン時にDBLINK経由で入ってしまえばいいのでは?

早速やってみる。

$ sqlplus test/test@link


接続されました。

「べ、別に期待してるわけじゃないんだからねっ!」

そのままSYSDBA権限を持っているユーザに入りなおします。

SQL>conn / as SYSDBA

「ふふふ、これで確かにDBLINK経由でSYSDBAに入っているぞ!」

そして、

SQL>CREATE USER HOGE1 IDENTIFIED BY HOGEHOGE;


正常に終了しました。

Σ(@@;;;)きたか!?

あれ?あれえれれれ?
できて・・・ない。

どうゆうことかといいますと、DBLINK経由でクライアント側にログインしたはずなんですが、
SYSDBA権限で入りなおした時点で、
自分のDBに入っているんです。

なので、うまくできたように見えて、実は自分の所のUSERを追加しただけ。
DBLINK先のUSERは作られているないのです。

残念。