Users password with reguired double quotes

Hi,

Also again a question about version differences between 12.1 and 13.2.
In the version 12.1 i could make a user with special characters %!$ etc. But now in version 13.2 i got an error message with "Double quotes are required for an object named "password1!".

It is on the same Oracle database. Oracle 11.2.0.4 or 12.1.0.2.0 there is no difference.

Any options for bypassing it.

Hello,

Wrapping the user to be created in double quotes should have the same effect. For example a user of %! should be created as "%!" which will create a user of %!$.
image

Edit - Our forum software is stripping out the dollar sign in part of my message but it's there.

Mike

Hi Mike,

I mean when i create a user in version 12 i could create a user with special characters without any error in Toad. But now in version 13 i got the error message. The same statement is using on a Oracle 11 database or a Oracle 12 database to create the user.
example:
CREATE USER TEST
IDENTIFIED BY Changing1!
DEFAULT TABLESPACE DATA
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

Gr. Jan

You can't create a user with that password without double-quotes even in SQL*Plus.

image

I guess you are using the "Create User" window (at first I thought you were just trying to run the SQL in the Editor).

At the very least, the error message is not good and will be fixed.

I need to do some testing to make sure that we're doing the right thing by requiring the user to specify the double quotes. We may have changed that when Oracle went from case-insensitive passwords to case-sensitive passwords.

Evening All,

having just recently had to rewrite some old code to generate secure
passwords - GDPR and all that - I can say that the only special
characters that Oracle permit in a password are:

  • The hash/pound/number sign '#'.
  • The Underscore '_'.
  • The dollar sign '$'.

Everything else will be permitted - but not necessarily legal - if and
only if there are double quotes around the password.

A word of warning, especially as this one bit be on the backside some
years ago, do not ever thing of using the at sign '@' in a password.

The password system we had to use back then generated passwords and was
not Oracle savvy. One user got a password generated with an '@' in it.
This was fine in certain GUIs but on the command line, attempting to:

sqlplus my_username/my@password@my_alias

caused no end of problems - as you can imagine:

  • The username was ok.
  • The password was assumed to be 'my'.
  • The tns_alias was taken to be 'password@my_alias'.

It simply did not work!

HTH

PS. https://github.com/NormanDunbar/generatePassword if anyone is
interested.

1 Like

@j.dekker Sorry I am just now trying this....but for me, using Toad 13.2, the password is just double-quoted automatically, and there is no error.

I only see one problem in this window. Here are the steps to reproduce it:

  • Go to Options -> Oracle -> General
  • Set "Double Quote Object Names" to ALL
  • In the Create User window, create a user named BOB, password can be anything (special chars not a factor)
  • The I get the message "Double-quotes are required for an object named BOB"

Note: this is actually a problem in all of the windows to create database objects.

This is a bug and I'll fix it. The workaround would be to just set the double-quote option back to one of the other choices.

If you have any additional info about how to reproduce the error you originally reported, please let me know.

Hi JohnDorlon,

Tanks for the feedback and i'll wait for the fix. And in the meantime use the workaround.

Gr. Jan

Hi JohnDorlon,

I question: can you tell me when the fix is published to download/installing.

ps. i made another question for automation designer where i made a app for checking through db_health_check several db's. In previous version there was a connecting to the database first and than the check was running, then connecting to the other db and then running the check. Now in version 13.2 there is firt connecting to all the database and when conected to all the databases the check is running per database . This takes also more time and i can't check if the password is correct for a database.

Can you help me als with this

Thx Jan

Both problems will be fixed in the next beta.

oké, thx
we will still use the old version and wait for the beta

Hi John,

Did you investigated the problem with the Double-quotes for creating or cloning a user? I'm using now the BETA 272 and the problem is still there.

Gr. Jan

Yes and as far as I can tell it is fixed. I no longer get the message "Double quotes are required for an object named ________". Are you still getting that in beta? If you are still having some problem, let me know the details again and I'll take care of it.

Hi John,

I tried to create an user by simply create user and thats works fine. Also using the password with special characters. In this case i used a ! in the password. But if i use this new created user (or an existing user) and use the clone/copy cmd then i get the error message "double quotes are ... "
In previous version i didn't get this error messages. If i use an Oracle 11 db or Oracle 12 db there are no differences. But if i using Toad version 12.1 and doing it on the same databases then i can create or clone/copy a user to a different user without an error message. In the version 12.1 in view, options, general the option is set to non-ascii. In the .272 version i tried all the 3 options but no solution.

Gr. Jan

Ok, I see that. Thank you. Will fix soon.

To work around it, enter the password with double quotes in the clone/copy window.

So, instead of password: abc!
Enter password: "abc!"

Sorry, late to the party, again!

I suspect the problem is caused by the fact that Oracle doesn't allow an exclamation mark in a password. Ok, that's not strictly true, because obviously it does, so what's going on here?

Oracle allows three special characters in passwords and only three:

  • A hash/pound/number sign, '#';
  • A dollar sign, '$';
  • An underscore, '_'

Those three will be accepted without quotes in a password on the command line, in SQL*Plus, in scripts to connect to the database etc. You can connect username/password@some_database without quotes.

Many other characters are acceptable to Oracle, provided they are in double quotes. many of my own passwords are unacceptable to Oracle, unless I quote them when connecting. I even do this on Toad's connection screen by default.

The exclamation mark is one I occasionally use, and I always have to quote it. On the Linux command line, on the servers, I even have to use single quotes to stop the shell reading the exclamation mark and acting upon it immediately:

connect myuser/'mypassword'@mydatabase

Even double quotes give an error with an exclamation mark.

Just some background info, in case it helps. :slight_smile:

Cheers,
Norm. [TeamT]