2014-10-24 13 views
7

Sono stato in grado di utilizzare qualsiasi carattere sul mio password utilizzando con successo le doppie virgolette come:Oracle 12c doppio apice sulle restrizioni di password

alter user example identified by "weird/@#&'pass\\"; 

non ho avuto problemi con le eccezioni particolari, anche/0 \ e altri casi speciali che ho visto fallito prima del lavoro, ma non posso usare una virgola doppia nella mia password ("), ho già provato i caratteri di escape senza successo

Non vedo restrizioni sul riferimento Oracle , quindi c'è un modo per usare le virgolette doppie o è una limitazione non documentata?

+0

Immagino che si applichino le stesse regole di [identificatori quotati] (http://docs.oracle.com/database/121/SQLRF/sql_elements008.htm): "Gli identificatori quotati possono contenere qualsiasi carattere e segni di punteggiatura e spazi. Tuttavia, né gli identificatori quotati né quelli non quotati possono contenere virgolette doppie o il carattere null (\ 0). "Si mentioend"/0 "era OK, intendevi questo, oppure eri in grado di usare" \ 0 ", e se così fosse è stato effettivamente il carattere null? –

+0

Ho appena provato entrambi/0 e \ 0 funzionano nel mezzo e alla fine della stringa della password, senza problemi. – Andres

+0

@AlexPoole: ''\ 0'' non è un" carattere null " in SQL: sono due caratteri singoli: \ e '0'. La barra rovesciata non ha alcun significato speciale nei letterali SQL (almeno non in SQL standard o Oracle) –

risposta

5

Lei ha detto,

ma, non posso usare un doppio apice della mia password ("), ho provato la fuga personaggi già senza successo.

Non vedo restrizioni su Oracle Reference, quindi esiste un modo per utilizzare le virgolette o una limitazione non documentata? ?

Oracle ha chiaramente documentato l'eccezione dello double quotation mark (") e dello return character nella password. Citazione dalla documentazione su IDENTIFIED BY clause,

Le password possono contenere qualsiasi singolo byte, multibyte, o speciali caratteri, o qualsiasi combinazione di questi, dal personaggio del database set, con l'eccezione della doppia virgoletta (. ") e il carattere di ritorno

Quindi, non è possibile utilizzare doppio mark` citazione nella password si otterrebbe due tipi di errore:.

SQL> create user test identified by "hi"hi"; 
create user test identified by "hi"hi" 
            * 
ERROR at line 1: 
ORA-01741: illegal zero-length identifier 


SQL> create user test identified by "hi""hi"; 
create user test identified by "hi""hi" 
           * 
ERROR at line 1: 
ORA-03001: unimplemented feature 


SQL> 
Problemi correlati