Conociendo el SQL Plus
Oracle permite usar varios tipos de herramientas para trabajar con base de datos, y entre ellas tenemos el SQL Plus, esta herramienta es una de las más antiguas, pero aun así es la que más se utiliza para trabajar con bases de datos, SQL Plus solo nos permite trabajar con caracteres, no es una herramienta gráfica, pero por este mismo motivo los profesionales la utilizan mucho, ya que en la mayor parte del tiempo no será posible trabajar con bases de datos con herramientas gráficas.
Es necesario conocer varios tipos de herramientas y formas de trabajar con una base de datos y que las aplicaciones gráficas puede que nos llame más la atención, pero nunca hay que olvidar que en un trabajo real, la mayor parte del tiempo de trabajo no se puede usar herramientas gráficas, esto no quiere decir que no tengamos que conocer y aprender las estas herramientas, pero lo que realmente tenéis que aprender es a usar son los comandos existentes para trabajar con las bases de datos. Aprender las herramientas gráficas es un plus, y no al contrario.
Lo primero que tenemos que hacer es entrar en un terminal y configurar las variables de entorno. Una vez hecho esto podemos ejecutar directamente el SQL Plus, pero antes siempre es necesario confirmar los valores de las variables de entorno, por lo que escribirmos:
- printenv │ grep ORACLE
y podemos ver el valor de las 3 variables, y ORACLE_SIDnos informa que vamos a trabajar con la base de datos orcl. Ahora ya podemos ejecutar sql, pero antes vamosa conocer su ruta, sql plus esta en la carpeta bin de oracle home, por lo que vamos a ir a ella.
Tecleamos cd para navegar por la carpeta y ahora tendríamos que introducir toda la ruta, pero como ya tenemos configurada la variable ORACLE_HOME con este valor podemos usarla, por lo tecleamos $ORACLE_HOME, el signo de dólar indica a linux que no queremos ir a una carpeta llamada ORACLE_HOME, sino que queremos ir a la ruta que contiene la variable ORACLE_HOME, por lo que si pulssamos intro podemos ver como se ya estamos en la ruta correcta, aquí podemos ver la carpeta final que es db_1, ahora tenemos que introducirnos dentro de la carpeta bin por lo que escribimos cd bin, y aquí ya estaría el fichero sqlplus, y vamos a listarlo, pero esta vez vamos a listar los ficheros que empiecen por sq, por lo que tecleamos el comando de listar que es ls y seguimos los caracteres sq, y terminamos con un asterisco. Con el asterisco estamos indicando que queremos listar todos los ficheros cuyos nombres empiecen por sq y que da igual como continúe, pulsamos intro y podemos ver 3 ficheros, uno de ellos es el sqlplus.
Este será el programa que mas se utiliza para gestionar las bases de datos. Para ejecutarlo se puede hacer de 2 formas, primero escribiendo sqlplus y ejecutándolo directamente sin ningún parámetro, en tal caso nos solictará el nombre del usuario y posteriormente la contraseña, pero al introducir la contraseña no se visualizará, y esto se hace por motivos de seguridad, para que nadie pueda ver tu contraseña. Y luego tenemos una segunda forma que es introduciendo el nombre de usuario y la contraseña, hay que saber que como administrador se crean 2 cuentas, el system y el sys.
El usuaro sys es el que tiene todo el poder de la base de datos, ya que es el propietario de la base de datos, el puede hacer todo lo que quiera y no tiene nada prohibido, ni nadie tiene que darle permiso para hacer algo, es más, este usuario puede ver los datos de cualquier usuario. Unas de las caraceristicas principales de oracle es que un usuario por defecto no puede hacer nada, se le tiene que dar los permisos para hacer cualquier cosa, y esto llega a tal punto, que si crea un usuario y no se le da el permiso de conectarse a la base de datos, este usuario existirá, pero no puede conectase, tampoco tiene derecho a crear objetos, ni insertar y ver los datos de otros usuario, para hacer cualquier cosa se le tiene que dar permiso. Pues el usuario sys tiene todos los permisos ya que es el propietario de la base de datos incluso puede ver los datos del resto de usuarios aunque ellos no quieran.
Este usuario sys no se suele utilizar, ya que si alguien viera y copiara la contraseña, tendria acceso total a la base de datos, pero si se usa para arrancar o parar la base de datos y hacer actualizaciones del oracle.
Luego tenemos el usuario system, este también tiene muchos derechos, pero no tantos como el sys. Es mucho más utilizado ya que es el usuario adecuado para hacer las operaciones más típicas en el mantenimiento de una base de datos. No hay que olvidar que estos dos usuario se crean por defecto a la hora de crear la base de datos, pero en la vida real lo que se hace es crear un usuario que tenga todas los permisos y privilegios necesarios para gestionar la base de datos, y se entra con ese usuario.
En esta sesión vamos a conectarnos al sql con el usuario system, por lo que borramos el usuario sys y vemos que tenemos introducido el nombre del ejecutable sqplus y luego en nombre del usuario con el que nos queremos conectar, después tenemos que escribir una barra para separar el usuario de la contraseña y finalmente introducir la contraseña. Esta contraseña es la que hemos introducido en unas de las pantallas de la creación de la base de datos. Para finalizar pulsamos Intro.
Ahora vemos que el pront a cambiado, ahora se puede ver que pone SQL, esto nos indica que ya estamos dentro del SQL.
Ya dentro, vamos a ver nuestro primer comando en SQL Plus que es showuser y terminamos el comando con punto y coma, todos los comandos en AQL deben ir terminados con punto y coma. Este comando nos muestra el nombre del usuario con el que estamos conectados, por lo que si lo ejecutamos vemos como nos indica que estamos con el usuario system.
Si nos conectamos mediante el usuario sys, escribimos:
- sqlplus sys/contraseña
Entonces al ejecutarlo, a diferencia del usuario system, es obligatorio indicar si nos vamos a conextar los privilegios de sysdbao sysoper. Éstos privilegios son privilegios administrativos necesarios para realizar operaciones administrativas de alto nivel,como crear, iniciar, cerrar base de datos.
Si nos conectamos con privilegio sysdbapodremos hacer todas la operativas que quereamos, incluso ver los datos del resto de usuarios, pero si nos conectamos con el privilegio sysoper nos permite realizar tareas operativas básicas, pero sin la capacidad de ver los datos del resto de usuarios. Nos pide el nombre de usuario por lo que pulsamos ctrl c y le damos al intro y de esta manera emos salido de la peticion de usuario.
Para volver a conectarnos con uno de estos 2 privilegios, pulsamos la tecla con la flecha para arriba y vemos como se nos muestra el último comando ejecutado y para indicar que vamos a utilizar un privilegio tenemos que escribir as, que es español significa “como”, y seguimos con el privilegio con el que nos queremos conectar, por ejemplo sysdba. Lo ejecutmos y volvemos a ver que en el pront ya pone sql, lo que nos indica que ya estamos dentro del SQl Plus. Para volver a comprobar con que usuario nos hemos conectado:
- showuser
y vemos que ahora nos muestra que estamos conectados con el usuario sysba.
sql plus