プロプログラマ -Flex,Air,C#,Oracle,PHP-

プログラマーを職業としてます。 Flex,Air,C#,Oracle,PHPの言語ノウハウを中心に情報発信していきます

[Oracle] CREATE USER のユーザー名をダブルクォーテーションで囲わないで!

この前誰かが作ったCREATE USER文をそのまま流した時にハマりました。
そのSQLは、CREATE USER句に指定するユーザー名をダブルクォーテーションで囲ってありました。
こんな感じ

CREATE USER "aiueo"
IDENTIFIED BY "aiueo" DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
ACCOUNT UNLOCK;

「ユーザーが作成されました」と表示されるので、特に気にしてなかったのですが、このユーザーでログインしようとするとエラーになります。

sqlplus aiueo/aiueo@testdb

ERROR:

ORA-01017: invalid username/password; logon denied

どうも「”aiueo”」というユーザーが作成されたようです。

この場合は、ログイン時にユーザー名を「”aiueo”」と指定する必要があります。
そのため、上記のようなsqlplusコマンドの後ろにユーザー名を指定することができません。(方法はあるかも)

CSEなどのツールでもユーザー名欄に「”aiueo”」を入力する必要があります。
これはかなり不便です。

ユーザーがうまく作成できていないのかとユーザー一覧を見ても、ダブルクォーテーションは表示されていないので、間違いに気づかないのです。

select username from all_users

USERNAME
————–
aiueo

SQLDeveloperなどのツールを使用してユーザー作成していれば問題にはならないのですが、どこかから持ってきたスクリプトを流用する場合は、気をつけましょう。。

ちなみに、このユーザーを削除する際にもダブルクォーテーションが必要になりますので、注意が必要です。
消したいのにユーザーが存在しませんと言われてパニックになります。

drop user "aiueo";

本当に紛らわしい。。。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です