En la búsqueda de una solución para el «Error ORA-65096: nombre de usuario o rol común no válido» en Internet se encuentra en muchos lugares la propuesta de utilizar la siguiente instrucción SQL:

alter session set "_ORACLE_SCRIPT"=TRUE

Sin embargo, investigando qué hace exactamente ese comando, me encontré con la suficiente información como para llegar a la conclusión de que la utilización de dicho comando es potencialmente problemática, les comparto un resumen por si les interesa:

  • En la página de soporte de Oracle se indica explícitamente que el parámetro «_ORACLE_SCRIPT»=TRUE no debe ser invocado por el usuario.
  • Aquí se explica cómo la utilización de este comando puede generar potenciales problemas de seguridad.
  • Aquí y aquí se explica cómo puede generar potenciales problemas al momento de exportar el DDL de la base de datos.
  • Y aquí se menciona que usar el parámetro «_ORACLE_SCRIPT»=TRUE puede invalidar el soporte que se tenga con Oracle.

Pensando en nuestro desarrollo como profesionales, me parece importante estar informados acerca de los riesgos que acarrea utilizar este comando, ya que en muchos lugares de internet suele sugerirse como «solución» a varios problemas.

Pero por sobre todo, me parece importante entender que el error que nos surgió es precisamente el comportamiento que debe tener la base de datos cuando intentamos crear un usuario común (usuario de la CDB) sin respetar el formato exigido para el nombre de los usuarios comunes. Este formato se exige por buenas razones, como se puede entender al leer este artículo.

Al menos en este caso, no es necesario recurrir a un comando potencialmente problemático, porque el error deja de aparecer si creamos el usuario de forma adecuada:

  • creando un usuario común (en la CDB) respetando el formato que se exige para su nombre
  • o creando un usuario local (en la PDB), sin necesidad de agregar un prefijo al nombre del usuario

Y, más allá de el uso de este comando en sí, no sólo a nivel de base de datos o programación, sino de muchas «soluciones» que uno puede encontrar por ahí cuando intenta resolver un problema, es bueno recordar que, que algo «funcione» no quiere decir que sea seguro… 😉

Categorizado en:

Etiquetado en: