Administración de privilegios, roles, perfiles, tablespaces, secuencias, índices y clusters en SQL

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

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

Administración de Privilegios, Roles y Perfiles en SQL

Privilegios

Para consultar los privilegios, se utilizan las siguientes sentencias:

  • Privilegios del usuario activo: SQL> SELECT * FROM SESSION_PRIVS;
  • Privilegios del sistema asignados al usuario: SQL> SELECT * FROM USER_SYS_PRIVS;

A continuación, se muestra una lista de vistas útiles para la gestión de privilegios:

  • DBA_SYS_PRIVS: Privilegios del sistema asignados a usuarios o roles.
  • USER_TAB_PRIVS: Concesiones sobre objetos que son propiedad del usuario, concedidos o recibidos por este.
  • USER_TAB_PRIVS_MADE: Concesiones sobre objetos que son propiedad del usuario, asignadas.
  • USER_TAB_PRIVS_RECD: Concesiones sobre objetos que recibe el usuario.
  • USER_TAB_GRANTS: Concesiones en objetos para los que el usuario es el propietario, el que concedió el privilegio o al que se concedió el privilegio.
  • USER_TAB_GRANTS_MADE: Todas las concesiones hechas en objetos que son propiedad del usuario.
  • USER_TAB_GRANTS_RECD: Concesiones en objetos en las que el usuario es aquel al que se le ha concedido el privilegio.
  • USER_TAB_GRANTS, ALL_TAB_...: Igual que las anteriores, pero aparecen todos los usuarios.
  • USER_COL_GRANTS: Concesiones en columnas para los que el usuario es el propietario, el que concedió el privilegio o al que se concedió el privilegio.
  • USER_COL_GRANTS_MADE: Todas las concesiones hechas a las columnas que son propiedad del usuario.
  • USER_COL_GRANTS_RECD: Concesiones en objetos en las que el usuario es aquel al que se le ha concedido el privilegio.
  • USER_COL_GRANTS_RECD, ALL_...: Igual que las anteriores, pero aparecen todos los usuarios.
  • USER_COL_PRIVS: Concesiones sobre columnas que son propiedad del usuario, concedidos o recibidos por este.
  • USER_COL_PRIVS_MADE: Concesiones sobre columnas que son propiedad del usuario, asignadas.
  • USER_COL_PRIVS_RECD: Concesiones sobre columnas que recibe el usuario.

Roles

Ejemplo de concesión de privilegios:

  • Otorgar privilegio de creación de roles a JAIME: SQL> GRANT CREATE ROLE TO JAIME;

Un rol es un conjunto de privilegios al que se le asigna un nombre.

  • Quitar privilegios al rol ACCESO: SQL> REVOKE CREATE TABLE FROM ACCESO;
  • Borrar un rol (de nombre ACCESO): SQL> DROP ROLE ACCESO;
  • Rol por defecto: ALTER USER Nombreusuario DEFAULT {[ROLE nombre_rol]| [NONE]}; (None para que no tenga rol por defecto).

Perfiles

Ejemplo de creación de un perfil:

  • Crear el PERFIL1: Limita a 1 el número de sesiones concurrentes por usuario y a dos minutos el tiempo de conexión por sesión. SQL> CREATE PROFILE PERFIL1 LIMIT SESSIONS_PER_USER 1 CONNECT_TIME 2;

Opciones de configuración de perfiles:

  • SESSIONS_PER_USER: Número de sesiones múltiples concurrentes permitidas por nombre de usuario.
  • CONNECT_TIME: Limita el tiempo de la conexión permitido por sesión antes de que el usuario sea desconectado.
  • IDLE_TIME: Limita el tiempo de inactividad permitido antes de que el usuario sea desconectado.
  • CPU_PER_SESSION: Limita el tiempo máximo de CPU por sesión (se expresa en centésimas de segundo).
  • CPU_PER_CALL: Limita el tiempo máximo de CPU por llamada de análisis, ejecución o búsqueda (se expresa en centésimas de segundo).
  • LOGICAL_READS_PER_SESSION: Limita el número de bloques de datos leídos en una sesión.
  • LOGICAL_READS_PER_CALL: Limita el número de bloques de datos leídos por llamada de análisis, ejecución o búsqueda.
  • PRIVATE_SGA: Limita el número de bytes enteros de espacio privado de la SGA.
  • COMPOSITE_LIMIT: Limita el coste total de recursos para una sesión en unidades de servicio basada en la suma de los siguientes recursos (CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION y PRIVATE_SGA).

Para activar el uso de los perfiles en el sistema, el administrador debe ejecutar la siguiente orden:

  • SQL> ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;

Administración de Tablespaces, Secuencias, Índices y Clusters en SQL

Tablespaces

  • Crear un tablespace TRAB: SQL> create tablespace trab datafile 'trab1.ora' size 10m,'trab2.ora' size 5m default storage (initial 10k pctincrease 25);
  • Crear un tablespace PEQUE: SQL> CREATE TABLESPACE PEQUE DATAFILE 'PEQUE.ORA' SIZE 100K AUTOEXTEND ON NEXT 120 MAXSIZE 1M;
  • Agregar un nuevo archivo al tablespace TRAB: SQL> ALTER TABLESPACE TRAB ADD DATAFILE 'TRAB3.ORA' SIZE 6M;
  • Borrar un tablespace: DROP TABLESPACE nombretablespace INCLUDING CONTENTS;

Secuencias

  • Crear una secuencia CODIGOS: SQL> CREATE SEQUENCE CODIGOS START WITH 1 INCREMENT BY 1 MAXVALUE 99;

Índices

  • Crear un índice en la columna EMP_NO para la tabla EMPLE: SQL> CREATE INDEX INDICEEMPLE ON EMPLE (EMP_NO);

Clusters

  • Crear un cluster EMPLEYDEPART: SQL> CREATE CLUSTER EMPLEYDEPART (NUMERO_DEPARTAMENTO NUMBER (2));
  • Agregar las tablas EMPLE y DEPART al cluster: CREATE TABLE DEPART ( DEPT_NO NUMBER(2) NOT NULL, DNOMBRE VARCHAR2(14), LOC VARCHAR2(14) ) CLUSTER EMPLEYDEPART (DEPT_NO);

Entradas relacionadas: