Gestión en Oracle con SQL

Gestión de perfiles, roles y tablespaces en Oracle bajo SQL.
Privilegios

Es la capacidad de un usuario dentro de la base de datos a realizar determinadas operaciones o acceder a determinados objetos de otros usuarios.

Privilegios sobre los objetos

Nos permite acceder y realizar cambios en los datos de otros usuairo. Ejemplo: El privilegio de consultar la tabla de otro usuario es un privilegio sobre objetos.

  GRANT {PRIV_OBJETO [, PRIV_OBJETO]… | ALL [PRIVILEGES]}
   [(COL [,COL]…)]
  ON [USUARIO] OBJETO
  TO {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}…]
  [WITH GRANT OPTION];


ON= Especifica el objeto sobre el que se dan los privilegios.
TO= Identifica a los usuarios o roles a los que se conceden los privilegios.
ALL= Concede todos los privilegios sobre el objeto especificado.
WITCH GRANT OPTION= Permite que el receptor del privilegio o rol se lo asigne a otros usuarios o roles.
PUBLIC= Asigna los privilegios a todos los usuarios actuales y futuros: El propósito principal del grupo PUBLIC es garantizar el acceso a determinados objetos a todos los usuarios de la base de datos.

Privilegios de sistema

Dan derecho a ejecutar un tipo de comando SQL o a realzar alguna acción sobre objetos de un tipo especificado. Por ejemplo, el privilegio para crear TABLESPACES es un privilegio de sistema. Formato:

  GRANT {PRIVILEGIO | ROL} [, {PRIVILEGIO | ROL}, …]
  TO {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}]
  [WITH ADMIN OPTION];


WITH ADMIN OPTION= Permite que el receptor del privilegio o rol pueda conceder esos mismos privilegios a otros usuarios o roles.

Retirada de privilegios de objetos a los usuarios

  REVOKE {PRIV_OBJETO [,PRIV_OBJETO]… | ALL [PRIVILEGES]}
  ON [USUARIO.]OBJETO
  FROM {USUARIO | ROL | PUBLIC} [, {USUARIO | ROL | PUBLIC}]…;


Retirada de privilegios de sistema o roles a los usuarios

  REVOKE {PRIV_SISTEMA | ROL} [,{PRIV_SISTEMA | ROL}]…
  FROM {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}]…;


Roles

Conjunto de privilegios agrupados. Formato:

 CREATE ROLE NOMBREROL [IFENTIFIED BY CONTRASEÑA];

Nota: Un rol puede decidir el acceso de un usuario a un objeto, pero no puede permitir la creación de objetos.

Supresión de privilegios en los roles

REVOKE NOMBREPRIVILEGIO ON NOMBRETABLA FROM NOMBREROL;

REVOKE NOMBREPRIVILEGIO FROM NOMBREROL;


Supresión de un rol

  DROP ROLE NOMBREROL;

Establecer un rol por defecto

  ALTER USER NOMBREUSUARIO
  DEFAULT {[ROLE NOMBRE_ROL] | [NONE]};


NONE= Hace que el usuario no tenga rol por defecto.

Perfiles:

Conjunto de límites a los recursos de la base de datos:

  CREATE PROFILE NOMBREPERFIL LIMIT
  {NOMBRE DE LOS LÍMITES}
  {ENTERO [K | M] | UNLIMITED | DEFAULT };


UNLIMITED= No hay limites sobre un recurso en particular.
DEFAULT= Coge el limite del perfil default.

Borrado de un perfil:

  DROP FILE NOMBREPERFIL [CASCADE];

Gestión de tablespaces

Un tablespace es una unidad lógica de almacenamiento d datos representada físicamente por uno o más archivos de datos. Se recomienda no mezclar datos de diferentes aplicaciones en un mismo tablespace.

Para crear un tablespace

  CRATE TABLESPACE NOMBRETABLESPACE
  DATAFILE 'NOMBREARCHIVO' [SIZE ENTERO [K | M] [REUSE]
  [DEFAULT STORAGE
    (INITIAL TAMAÑO
    MINEXTENTS TAMAÑO
    MAXEXTENTS TAMAÑO
    PCTINCREASE VALOR
    )]
   [ONLINE | OFFLINE];


REUSE= Reutiliza el archivo si ya existe o lo crea si no existe.
DEFAULT STORAGE= Define el almacenamiento por omisión para todos los objetos que se creen en este espacio de la tabla. Fija la cantidad de espacio si no se especifica en la sentencia CREATE TABLE.

Modificación de tablespaces

  ALTER TABLESPACE NOMBRETABLESPACE
  {[ADD DATAFILE 'NOMBREARCHIVO' [SIZE ENTERO [K | M] [REUSE]
    [AUTOEXTEND ON… | OFF]
    ]
    [REANME DATAFILE 'ARCHIVO' [, 'ARCHIVO']…
    TO 'ARCHIVO' [, 'ARCHIVO']]
    [DEFAULT STORAGE CLAUSULAS_ALMACENAMIENTO]
    [ONLINE | OFFLINE]
    };


ADD_DATAFILE= Añade al tablespace uno o varios archivos.
AUTOEXTEND= Activa o desactiva el crecimiento automático de los archivos de datos del tablespace. Cuando un tablespace se llena podemos usar esta opción para que el tamaño del archivo o archivos de datos asociados crezca automáticamente.
  Autoextend off: desactiva el crecimiento automático.
RENAME_DATAFILE= Cambia el nombre de un archivo existente del tablespace. Este cambio se tiene que hacer desde el sistema operativo y, después, ejecutar la orden SQL.

Borrado de tablespaces

  DROP TABLESPACE NOMBRETABLESPACE
  [INCLUDING CONTENTS];


INCLUDING CONTENTS= Permite borrar un tablespace que tenga datos. Sin esta opción solo se puede suprimir un tablespace vacío.
Se recomienda poner el talespace offline entes de borrarlo para asegurarse de que no haya sentencias SQL que estén accediendo a datos del tablesapace, en cuyo caso no seria posible borrarlo.
Cuando se borra un tablespace los archivos asociados no se borran del sistema operativo, por lo que tendremos que borrarlos de forma manual.

Compartir

Comentarios

Oscar Uriel Amador

11/9/2007
Que tal quisiera solicitarles información del tema
de creación de un tablespace de manera de compresión para que todos mis objetos que cree en ese espacio de tabla sean comprimidos de manera automatica. no se como crear mi query!