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;