You actually can connect using such a username, but it's a bit of a PITA
due to the quoting requirements.
[SYSTEM@test ] SQL> create user "test-user" identified by "boGus1234%";
User created.
[SYSTEM@test ] SQL> grant create session to "test-user";
Grant succeeded.
[SYSTEM@test ] SQL> select username from dba_users where lower(username)
like 'test%';
USERNAME
--------------------------------------------------------------------------------------------------------------------------------
test-user
[SYSTEM@test ] SQL> conn "test-user"/boGus1234%@test
Connected.
Specifying credentials on the command line may require nested quotes
(likely depending upon platform), since the shell removes the outermost set
before launching the client.
$ sqlplus '"test-user"@testdr'
SQL*Plus: Release 18.0.0.0.0 - Production on Thu May 9 09:11:09 2019
Version 18.5.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Enter password:
Last Successful login time: Thu May 09 2019 09:09:08 -05:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage
Management, OLAP,
Advanced Analytics and Real Application Testing options
Not that I'd actually *recommend* doing this... but it is possible.
On Thu, May 9, 2019 at 8:08 AM Patrice sur GMail <patrice.boivin@xxxxxxxxx>
wrote:
We discovered it is possible to create hyphenated usernames if quotation
marks are used, but then people cannot connect.
For now I am recommending they come up with different usernames or use _
instead of -.
Maybe ASCII should not have conflated the hyphen and the minus sign but I
suppose they were building on the typewriter keys back then.