ORACLE DBA - GRANT

google bookmarks delicious yahoo digg technorati meneame live IExplorer bookmarks rss

Grant (permisos)

Da permisos a un usuario o a un rol. Permiso del sistema:
   GRANT system_priv(s) TO grantee 
      [IDENTIFIED BY password] [WITH ADMIN OPTION]

   GRANT role TO grantee 
      [IDENTIFIED BY password] [WITH ADMIN OPTION]

   GRANT ALL PRIVILEGES TO grantee 
      [IDENTIFIED BY password] [WITH ADMIN OPTION]
Permisos sobre objetos:
   GRANT object_priv [(column, column,...)]
      ON [schema.]object
         TO grantee [WITH GRANT OPTION] [WITH HIERARCHY OPTION]

   GRANT ALL PRIVILEGES [(column, column,...)]
      ON [schema.]object
         TO grantee [WITH GRANT OPTION] [WITH HIERARCHY OPTION]

   GRANT object_priv [(column, column,...)]
      ON DIRECTORY directory_name
         TO grantee [WITH GRANT OPTION] [WITH HIERARCHY OPTION]

   GRANT object_priv [(column, column,...)]
      ON JAVA [RE]SOURCE [schema.]object
         TO grantee [WITH GRANT OPTION] [WITH HIERARCHY OPTION]
grantee:
   user 
   role
   PUBLIC
system_privs, permisos del sistema:
   CREATE SESSION - Permite conectar a la base de datos
   UNLIMITED TABLESPACE  - Uso de espacio ilimitado del tablespace.
   SELECT ANY TABLE - Consultas en tables, views, or mviews en cualquier esquema
   UPDATE ANY TABLE - Actualizar filas en tables and views en cualquier esquema
   INSERT ANY TABLE - Insertar filas en tables and views en cualquier esquema

   Permisos de administrador para CREATE, ALTER o DROP:
     cluster, context, database, link, dimension, directory, index,
     materialized view, operator, outline, procedure, profile, role,
     rollback segment, sequence, session, synonym, table, tablespace,
     trigger, type, user, view. 
object_privs, permisos sobre objetos:
   SELECT, UPDATE, INSERT, DELETE, ALTER, DEBUG, EXECUTE, INDEX, REFERENCES 
roles:
   SYSDBA, SYSOPER, OSDBA, OSOPER, EXP_FULL_DATABASE, IMP_FULL_DATABASE
   SELECT_CATALOG_ROLE,  EXECUTE_CATALOG_ROLE, DELETE_CATALOG_ROLE
   AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE - manejo de la cola
   SNMPAGENT - Agente inteligente.
   RECOVERY_CATALOG_OWNER - rman
   HS_ADMIN_ROLE - servicios heterogeneos

   mas cualquier rol de usuario que halla disponible
Notes: Es posible asignar varios Object_Privs en un solo comando GRANT.
GRANT SELECT (empno), UPDATE (sal) ON scott.emp TO emma
Con la opcion WITH HIERARCHY OPTION damos permisos sobre todos los subojetos, incluso sobre los que se creen despues de ejecutar el GRANT. Con la opción WITH GRANT OPTION damos permiso para que el que los recibe los pueda a su vez asignar a otros usuarios y roles. La opción "GRANT ALL PRIVILEGES..." se puede escribir tambien como "GRANT ALL..." Permisos del rol SYSDBA:
    CREATE DATABASE
    CREATE SPFILE
    STARTUP and SHUTDOWN
    ALTER DATABASE: open, mount, back up, or change character set
    ARCHIVELOG and RECOVERY
    Includes the RESTRICTED SESSION privilege
Permisos del rol SYSOPER:
    CREATE SPFILE
    STARTUP and SHUTDOWN
    ALTER DATABASE: open, mount, back up
    ARCHIVELOG and RECOVERY
    Includes the RESTRICTED SESSION privilege
Los roles CONNECT, RESOURCE y DBA ya no deben usarse (aunque estan soportados). La forma correcta de trabajar es: -Crear un Role -Dar permisos de objeto y sistema al rol -Dar el rol a los usuarios Esta forma de trabajar tiene varias ventajas: -La asignación de recursos es mas rapida. -Nuevos permisos asignados a un rol estaran inmediatamente disponibles a los ujsuarios coenctados. -Sin embargo los nuevos permisos asigandos a un usuario necesitan de reconexión. Excepciones: El permiso de UNLIMITED TABLESPACE debe ser directo. Permisos a usuarios que ejecutan trabajos en segundo plano (dbms_job.submit) deben ser directos, cuando el trabajo comienza no hay roles activos.
GRANT CREATE session, CREATE table, CREATE view, 
      CREATE procedure,CREATE synonym,
      ALTER table, ALTER view, ALTER procedure,ALTER synonym,
      DROP table, DROP view, DROP procedure,DROP synonym,
      TO MyRole;

Explicación de la sintaxis utilizada para los comandos:
Las palabras en mayusculas son comandos de oracle.
Las palabras en minusculas son opiones modificables
Las partes enmarcadas con [] son opcionales
Las palabras en negrita son las opciones por defecto
Las partes enmarcadas con {} son alternativas (una u otra).
El simbolo | indica OR