Administración de Usuarios y Privilegios en SQL: Comandos Esenciales Oracle

Enviado por Comunidad Wikiteka y clasificado en Informática

Escrito el en español con un tamaño de 6,01 KB

Vistas del Diccionario de Datos

El diccionario de datos permite consultar metadatos sobre la estructura y los objetos de la base de datos.

Consulta de Objetos del Diccionario

Para visualizar los nombres de las tablas disponibles en el diccionario:

SQL> SELECT TABLE_NAME FROM DICTIONARY;

Consulta de Comentarios

Si desea ver los comentarios asociados a alguna de las vistas del diccionario:

SQL> SELECT COMMENTS FROM DICTIONARY;

Gestión de Usuarios en Oracle SQL

Creación Básica de Usuario

Crea un usuario de nombre PEPE que será identificado por el sistema, con clave de acceso PEPE:

SQL> CREATE USER PEPE IDENTIFIED BY PEPE;

Conexión

Para conectarse con el usuario PEPE (asumiendo que ya tiene el privilegio CONNECT):

CONNECT PEPE;

Borrado de Usuario

Para borrar un usuario:

SQL> DROP USER usuario;

Para borrar un usuario de la BD, incluyendo todos sus objetos (tablas, vistas, etc.):

SQL> DROP USER usuario [CASCADE];

Creación de Usuario con Parámetros Completos

Crear un usuario especificando tablespace por defecto y cuota de almacenamiento:

SQL> CREATE USER PEPE IDENTIFIED BY PEPE DEFAULT TABLESPACE SYSTEM QUOTA 500K ON SYSTEM TEMPORARY TABLESPACE TEMP;

Obtener Información sobre Usuarios

Para obtener información sobre todos los usuarios de la base de datos, se consulta la vista ALL_USERS:

SQL> DESC ALL_USERS;
SQL> SELECT * FROM ALL_USERS;

Modificación de Usuario

Cambiar Contraseña

Modificar la contraseña del usuario PEPE a PEPO:

SQL> ALTER USER PEPE IDENTIFIED BY PEPO;

Modificar la Cuota

Si queremos modificar la cuota de almacenamiento asignada al usuario PEPE en el tablespace SYSTEM:

SQL> ALTER USER PEPE QUOTA 40K ON SYSTEM;

Administración de Privilegios (GRANT y REVOKE)

Privilegios de Sistema

Concesión de Privilegio de Conexión

Concedemos al usuario PEPE el privilegio de conexión (CONNECT):

SQL> GRANT CONNECT TO PEPE;

Privilegios de Administrador de BD

Conceder el rol de Administrador de Base de Datos (DBA) a PEDRO:

SQL> GRANT DBA TO PEDRO;

Concesión con Opción de Administración

Conceder el privilegio de borrar usuarios (DROP USER) a PEPE, y además permitirle conceder este mismo privilegio a otros usuarios:

SQL> GRANT DROP USER TO PEPE WITH ADMIN OPTION;

Privilegios a Nivel de Sistema para Todos

Permitir que cualquier usuario pueda realizar SELECT sobre cualquier tabla de cualquier esquema:

SQL> GRANT SELECT ANY TABLE TO PUBLIC;

Revocación de Privilegios de Sistema

Quitamos el privilegio DBA a PEDRO:

SQL> REVOKE DBA FROM PEDRO;

Operaciones DML y Privilegios de Objeto

Creación de Tabla

Creamos una tabla llamada TABLA1:

SQL> CREATE TABLE TABLA1 (CIUDAD VARCHAR2(12), TEMPERATURA NUMBER(2));

Inserción de Registros

Introducimos una serie de registros en la tabla TABLA1:

SQL> INSERT INTO TABLA1 VALUES('MADRID', 26);

Insertamos otro registro en TABLA1:

SQL> INSERT INTO PEPE.TABLA1 VALUES('JAEN', 35);

Validación de Cambios

Cuando ya tenemos la tabla con valores, los validamos permanentemente:

SQL> COMMIT;

Concesión de Privilegios de Objeto Específicos

El usuario PEPE le concede a JUAN el privilegio de poder modificar únicamente la columna TEMPERATURA de la tabla TABLA1:

SQL> CONNECT PEPE
SQL> GRANT UPDATE (TEMPERATURA) ON TABLA1 TO JUAN;

Ejecución de la Modificación

Realizamos el cambio (asumiendo que JUAN está conectado o especificando el esquema):

SQL> UPDATE PEPE.TABLA1 SET TEMPERATURA = 20;

Comprobamos el resultado:

SQL> SELECT * FROM PEPE.TABLA1;

Modificación Condicional

Si queremos modificar estableciendo una condición WHERE:

SQL> UPDATE PEPE.TABLA1 SET TEMPERATURA = 26 WHERE CIUDAD = 'MADRID';

Concesión de Todos los Privilegios

Otorgar todos los privilegios sobre TABLA1 a JUAN:

SQL> GRANT ALL ON TABLA1 TO JUAN;

Concesión de Privilegios a Otro Usuario

Otorgar el privilegio INSERT sobre TABLA1 a MANOLO:

SQL> GRANT INSERT ON PEPE.TABLA1 TO MANOLO;

Privilegio de Otorgar Privilegios (WITH GRANT OPTION)

Conceder el privilegio INSERT a JUAN, permitiéndole a su vez conceder este mismo privilegio a terceros:

SQL> GRANT INSERT ON PEPE.TABLA1 TO JUAN WITH GRANT OPTION;

Concesión a Todos los Usuarios (PUBLIC)

El usuario PEPE va a otorgar todos los privilegios sobre TABLA1 a todos los usuarios (actuales y futuros):

SQL> GRANT ALL ON TABLA1 TO PUBLIC;

Comprobación Final

Para comprobar si las operaciones se han realizado correctamente:

SQL> SELECT * FROM PEPE.TABLA1;

Nota: El siguiente comando parece estar fuera de contexto, pero se mantiene según la solicitud original:

Comprobamos si el privilegio está revocado:

SQL> DROP USER TON;