-
Crear usuarios de forma correcta en Oracle Database
Este hack sirve tanto para la versión completa de Oracle Database, como para la versión XE.
MEDIANTE SCRIPTS SQL
En el menú de SQLDeveloper, hacemos click en «Archivo» >> «Nuevo» >> seleccionamos «Archivos de bases de datos» y le damos al botón «Aceptar».
Se nos abrirá una ventana donde deberemos elegir el nombre y la ubicación del archivo .sql. Lo hacemos y le damos a aceptar.
Se nos abrirá una nueva pestaña de scripts de SQLDeveloper con nada escrito dentro. Nos aseguramos de que, arriba a la derecha elijamos la conexión sys (con permisos SYSDBA) para ejecutar los siguientes comandos, dependiendo que forma de crear usuarios queremos:
FORMA BÁSICA
Esta forma nos permitirá crear un usuario básico con el que podremos conectarnos mediante SQLDeveloper, con su propia conexión, crear tablas y llenarlas de contenido. De esta forma, este usuario básico utilizará el tablespace users, en el que tendrá cuota ilimitada y no tendrá más permisos que los mínimos necesarios para operar en su sesión de SQLDeveloper.
Dentro del script pegamos y ejecutamos el siguiente texto:
alter session set "_oracle_script"=true; create user NombreDeUsuario identified by "12345678"; grant create session to NombreDeUsuario; grant create table to NombreDeUsuario; alter user NombreDeUsuario quota unlimited on users;
Cambiamos, lógicamente, 12345678 por la contraseña que queramos darle al nuevo usuario y cambiamos todas las coincidencias de NombreDeUsuario por el nombre de usuario que queramos darle al usuario que queramos crear. Damos a acabar y ya tendremos el usuario creado.
FORMA COMPLEJA/COMPLETA
Esta forma nos permitirá crear un usuario básico con el que podremos conectarnos mediante SQLDeveloper, con su propia conexión, crear tablas y llenarlas de contenido. Podremos pensar que es igual que la forma básica, pero no. Mediante esta forma compleja, el nuevo usuario tendrá su propio tablespace, con su propio datafile
De esta forma, este usuario básico utilizará el tablespace users, en el que tendrá cuota ilimitada y no tendrá más permisos que los mínimos necesarios para operar en su sesión de SQLDeveloper.
Dentro del script pegamos y ejecutamos el siguiente texto:
alter session set "_oracle_script"=true; create tablespace ts_NombreDeUsuario datafile 'df_NombreDeUsuario.dbf' size 1m autoextend on maxsize unlimited; create user NombreDeUsuario identified by "12345678" default tablespace ts_NombreDeUsuario quota unlimited on ts_NombreDeUsuario; create profile usuarios limit failed_login_attempts 3; alter user NombreDeUsuario profile usuarios; grant create session to NombreDeUsuario; grant create table to NombreDeUsuario; alter user NombreDeUsuario quota unlimited on users;
Cambiamos, lógicamente, 12345678 por la contraseña que queramos darle al nuevo usuario y cambiamos todas las coincidencias de NombreDeUsuario por el nombre de usuario que queramos darle al usuario que queramos crear. Damos a acabar y ya tendremos el usuario creado.
Ahora ya podemos crear una nueva conexión desde SQL Developer donde podemos hacer todas las pruebas que queramos con ese nuevo usuario sin necesidad de tocar otros tablespaces o usuarios.
MEDIANTE SQL DEVELOPER (DE FORMA GRÁFICA)
No aconsejo crear usuarios mediante el entorno gráfico de SQLDeveloper, porque mediante la pestaña SQL que aparece al crear usuarios de forma gráfica, no podremos ejecutar la primera línea de los comandos de arriba, que es la que altera la sesión para permitirnos utilizar cualquier nombre de usuario. De forma que estaríamos obligados a crear el usuario como common user siguiendo otras directivas de nombres.
Excepto, claro, que hayamos instalado OracleXE y no estemos utilizando el SID XE, sino el servicio XEPDB1, que es el servicio por defecto cuando se instala Oracle Database Express Edition Si ese es el caso, entonces si que podremos crear usuarios de forma gráfica en ese servicio, sin necesidad de alterar la sesión. Lo más probable es que, al acabar la instalación de OracleXE en Debian, mediante mi script, nos haya salido este mensaje:
Connect to Oracle Database using one of the connect strings: Pluggable database: debian/XEPDB1 Multitenant container database: debian
Lo que significaría que tendríamos el servicio XEPDB1 disponible.
En ese caso, para crear el usuario, seguiríamos los siguientes pasos:
Nos conectamos con sys y, en el panel de la izquierda, bajamos hasta el final, donde encontraremos el apartado «otros usuarios». Hacemos click derecho en ese apartado y le damos a «Crear Usuario».
Se nos abrirá una ventana nueva con varias pestañas. Vamos a la pestaña SQL, borramos todo el contenido de su campo de texto y pegamos el siguiente código:
FORMA BÁSICA
Esta forma nos permitirá crear un usuario básico con el que podremos conectarnos mediante SQLDeveloper, con su propia conexión, crear tablas y llenarlas de contenido. De esta forma, este usuario básico utilizará el tablespace users, en el que tendrá cuota ilimitada y no tendrá más permisos que los mínimos necesarios para operar en su sesión de SQLDeveloper.
Dentro del script pegamos y ejecutamos el siguiente texto:
create user NombreDeUsuario identified by "12345678"; grant create session to NombreDeUsuario; grant create table to NombreDeUsuario; alter user NombreDeUsuario quota unlimited on users;
Cambiamos, lógicamente, 12345678 por la contraseña que queramos darle al nuevo usuario y cambiamos todas las coincidencias de NombreDeUsuario por el nombre de usuario que queramos darle al usuario que queramos crear. Damos a acabar y ya tendremos el usuario creado.
FORMA COMPLEJA/COMPLETA
Esta forma nos permitirá crear un usuario básico con el que podremos conectarnos mediante SQLDeveloper, con su propia conexión, crear tablas y llenarlas de contenido. Podremos pensar que es igual que la forma básica, pero no. Mediante esta forma compleja, el nuevo usuario tendrá su propio tablespace, con su propio datafile
De esta forma, este usuario básico utilizará el tablespace users, en el que tendrá cuota ilimitada y no tendrá más permisos que los mínimos necesarios para operar en su sesión de SQLDeveloper.
Dentro del script pegamos y ejecutamos el siguiente texto:
create tablespace ts_NombreDeUsuario datafile 'df_NombreDeUsuario.dbf' size 1m autoextend on maxsize unlimited; create user NombreDeUsuario identified by "12345678" default tablespace ts_NombreDeUsuario quota unlimited on ts_NombreDeUsuario; create profile usuarios limit failed_login_attempts 3; alter user NombreDeUsuario profile usuarios; grant create session to NombreDeUsuario; grant create table to NombreDeUsuario; alter user NombreDeUsuario quota unlimited on users;
Cambiamos, lógicamente, 12345678 por la contraseña que queramos darle al nuevo usuario y cambiamos todas las coincidencias de NombreDeUsuario por el nombre de usuario que queramos darle al usuario que queramos crear. Damos a acabar y ya tendremos el usuario creado.
Ahora ya podemos crear una nueva conexión desde SQL Developer donde podemos hacer todas las pruebas que queramos con ese nuevo usuario sin necesidad de tocar otros tablespaces o usuarios.
Los hacks de hacks4geeks son minitutoriales rápidos pensados para geeks con conocimiento informático avanzado. Si no entiendes o no consigues ejecutar un hack de esta web considera suscribirte a Premium para solicitar asistencia sobre el mismo.