miércoles, 23 de abril de 2014

Vínculos a Bases de Datos con Contraseñas Sensibles al Uso de Mayúsculas y Minúsculas

Me conecté a una base de datos en Oracle versión 11:

Oracle 11: sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 23 18:22:40 2014
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
SQL>

Creé un usuario con una contraseña hecha de minúsculas:

SQL> create user user1 identified by pw1
  2  /
 
User created.
 
SQL> grant create session to user1
  2  /
 
Grant succeeded.
SQL>

Luego me conecté a la base de datos con este usuario dos veces para probar que la verificación de la contraseña fuese sensible al uso de mayúsculas y minúsculas:

SQL> conn user1/pw1
Connected.
SQL> conn user1/PW1
ERROR:
ORA-01017: invalid username/password; logon denied
 
Warning: You are no longer connected to ORACLE.
SQL> 

Creé un usuario con una contraseña hecha de mayúsculas: 

SQL> conn / as sysdba
Connected.
SQL> create user user2 identified by PW2
  2  /
 
User created.
 
SQL> grant create session to user2
  2  /
 
Grant succeeded.
SQL>

Entonces hice las mismas pruebas con la contraseña: 

SQL> conn user2/pw2
ERROR:
ORA-01017: invalid username/password; logon denied
 
Warning: You are no longer connected to ORACLE.
SQL> conn user2/PW2
Connected.
SQL> 

Me conecté a una base de datos en Oracle versión 9 en otro servidor: 

Oracle 9: sqlplus "/ as sysdba"
 
SQL*Plus: Release 9.2.0.7.0 - Production on Wed Apr 23 18:34:33 2014
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
 
SQL> 

Luego, desde la base de datos en Oracle 9, me conecté cuatro veces a la base de datos en Oracle 11. La verificación de las contraseñas funcionó todavía:

SQL> conn user1/pw1@busdpt1
Connected.
SQL> conn user1/PW1@busdpt1
ERROR:
ORA-01017: invalid username/password; logon denied
 
Warning: You are no longer connected to ORACLE.
SQL> conn user2/pw1@busdpt1
ERROR:
ORA-01017: invalid username/password; logon denied
 
SQL> conn user2/PW2@busdpt1
Connected.
SQL>

Creé un usuario en Oracle 9 que sería el dueño de unos vínculos a la base de datos en Oracle 11: 

SQL> conn / as sysdba
Connected.
SQL> create user link_owner identified by link_owner
  2  /
 
User created.
 
SQL> grant create session, create database link
  2  to link_owner
  3  /
 
Grant succeeded.
 
SQL>

Entonces creé dos vínculos al usuario con la contraseña hecha de minúsculas. El primer vínculo empleó una contraseña hecha de minúsculas y el segundo empleó una contraseña hecha de mayúsculas. Ninguno de los vínculos funcionó: 

SQL> conn link_owner/link_owner
Connected.
SQL> create database link link1
  2  connect to user1 identified by pw1
  3  using 'BUSDPT1'
  4  /
 
Database link created.
 
SQL> select * from dual@link1
  2  /
select * from dual@link1
                   *
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from LINK1
 
SQL> create database link link2
  2  connect to user1 identified by PW1
  3  using 'BUSDPT1'
  4  /
 
Database link created.
 
SQL> select * from dual@link2
  2  /
select * from dual@link2
                   *
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from LINK2
 
SQL>

Por fin, creé dos vínculos al usuario con la contraseña hecha de mayúsculas. El primer vínculo empleó una contraseña hecha de minúsculas y el segundo empleó una contraseña hecha de mayúsculas. Ambos funcionaron: 

SQL> create database link link3
  2  connect to user2 identified by pw2
  3  using 'BUSDPT1'
  4  /
 
Database link created.
 
SQL> select * from dual@link3
  2  /
 
D
-
X
 
SQL> create database link link4
  2  connect to user2 identified by PW2
  3  using 'BUSDPT1'
  4  /
 
Database link created.
 
SQL> select * from dual@link4
  2  /
 
D
-
X
 
SQL>

Esto me sugiere que una base de datos en Oracle 9 envia la contraseña para un vínculo en mayúsculas. Por eso, si usted quiere crear un  vínculo desde Oracle 9 hasta Oracle 11, es necesario conectarse a un usuario que tiene una contraseña hecha de mayúsculas.

En inglés 

No hay comentarios:

Publicar un comentario