Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(3)
ndice
(2.1) introduccin ____________________________________________________ 7 (2.2) cuentas y permisos administrativos _______________________________ 7
(2.2.1) cuentas administrativas (2.2.2) privilegios administrativos 7 8
(4)
(5)
instalacin. En su esquema se suelen crear tablas y vistas administrativas (pero no se deberan crear otro tipo de tablas). SYSMAN. Usado para realizar tareas administrativas con la aplicacin Enterprise Manager. DBSMNP. Monitoriza Enterprise Manager.
(8)
(2.4) autentificacin
La autentificacin define la forma en la que el usuario verifica quin es. Hay mtodos de autentificacin ms seguros que otros. Asegurar la autentificacin implicara asegurar el medio la comunicacin entre usuario y base de datos con protocolos de cifrado. Por otro lado hay que proteger especialmente a los usuarios administradores.
EXCLUSIVE. El archivo de contraseas se usa slo en la instancia actual. SHARED: Se comparte el archivo de contraseas entre varias instancias de tipo Real Application Cluster de Oracle (para bases de datos distribuidas). En este caso no se pueden cambiar las contraseas de los usuarios administrativos.
(10)
Es una sentencia estndar, a la que se le pueden aadir mltiples clusulas. CREATE USER nombre {IDENTIFIED BY 'contrasea' | EXTERNALLY | GLOBALLY AS nombreGlobal} [DEFAULT TABLESPACE tableSpacePorDefecto] [TEMPORARY TABLESPACE tableSpacetTemporal] [QUOTA {cantidad [K|M] | UNLIMITED} ON tablespace [QUOTA {cantidad [K|M] | UNLIMITED} ON tablespace []] ] [PASSWORD EXPIRE] [ACCOUNT {UNLOCK|LOCK}]; [PROFILE {perfil | DEFAULT}] Slo la primera lnea es obligatoria, el resto posee opciones por defecto que se aplican si no se especifica cada apartado (no hace falta especificar todos, slo las lneas que nos interesen). Ejemplo: CREATE USER jsanchez IDENTIFIED BY 'Caracola' DEFAULT TABLESPACE 'Usuarios' QUOTA 15M ON 'Usuarios' //Se dan 15MBytes de espacio en el tablespace ACCOUNT LOCK; //La cuenta estar bloqueada
(11)
ALTER DATABASE ALTER SYSTEM CREATE TABLE GRANT ANY OBJECT PRIVILEGE
CREATE ANY TABLE DROP ANY TABLE SELECT ANY TABLE INSERT ANY TABLE UPDATE ANY TABLE
(12)
En la tabla anterior se ha hecho hincapi en los privilegios referidos a las tablas, para otros objetos el funcionamiento es similar: igual que hay CREATE TABLE, se puede usar CREATE VIEW para las vistas o INDEX, TRIGGER, PROCEDURE, SEQUENCE, SYNONYM, TYPE, y de esa forma podemos conceder privilegio de creacin de otros objetos. Lo mismo con el resto de operaciones Hay dos privilegios especiales que permiten conceder nivel de DBA, son: SYSDBA y SYSOPER. Se han comentado anteriormente. La lista completa de privilegios es: Privilegio
Sesiones CREATE SESSION ALTER SESSION ALTER RESOURCE COST RESTRICTED SESSION
Permite Conectar a la base de datos Modificar el funcionamiento de la sesin Modifica los parmetros de clculo de coste de la sesin Conectar aunque la base de datos se haya iniciado en modo restringido
Base de datos y sistema
ALTER DATABASE ALTER SYSTEM AUDIT SYSTEM CREATE USER ALTER USER
Modificar la base de datos (privilegio de gran capacidad administrativa) Modificar los parmetros del sistema Auditar la base de datos
Usuarios, roles, privilegios y perfiles
DROP USER CREATE PROFILE ALTER PROFILE DROP PROFILE CREATE ROLE ALTER ANY ROLE GRANT ANY ROLE GRANT ANY PRIVILEGE GRANT ANY SYSTEM PRIVILEGE CREATE ANY DIRECTORY DROP ANY DIRECTORY
Crear usuarios pudiendo indicar tablespace por defecto, cuotas y perfiles Modificar al usuario. Permite cambiar la contrasea y modo de autentificacin, tablespace por defecto, cuota de uso de disco, roles y el perfil del usuario Borrar usuario Crear perfiles Modificar perfiles Borrar perfiles Crear roles Modificar roles Conceder roles Conceder privilegios de objeto Conceder privilegios de sistema
Directorios
Privilegio
CREATE TABLESPACES ALTER TABLESPACE DROP TABLESPACE MANAGE TABLESPACE
Permite
Tablespaces (espacios de tabla)
UNLIMITED TABLESPACE
Crear tablespaces Modificar tablespaces Borrar tablespaces Administrar el espacio de tablas para poder hacer copia de seguridad o simplemente quedar online u offline el tablespace Usa cuota ilimitada al escribir en cualquier tablespace. Este privilegio elimina las cuotas establecidas sobre el usuario, si las hubiera.
Tablas
CREATE TABLE
ALTER ANY TABLE BACKUP ANY TABLE CREATE ANY TABLE DELETE ANY TABLE DROP ANY TABLE INSERT ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE LOCK ANY TABLE FLASHBACK ANY TABLE
Crear tablas en el esquema del usuario, incluye insertar, modificar y eliminar datos de la misma; as como eliminar la propia tabla Modificar tablas de cualquier usuario Utilizar la utilidad Export para copiar datos de otros esquemas. Crear tablas en cualquier esquema Borrar filas de tablas en cualquier esquema Borrar tablas en cualquier esquema Aadir datos a cualquier tabla Seleccionar datos de tablas en cualquier esquema Modificar datos de tablas de cualquier esquema Bloquear tablas, vistas e instantneas en cualquier esquema Realizar accin de flashback en tablas, vistas e instantneas en cualquier esquema
Vistas
CREATE VIEW CREATE ANY VIEW DROP ANY VIEW UNDER ANY VIEW CREATE MATERIALIZED VIEW CREATE ANY MATERIALIZED VIEW ALTER VIEW DROP VIEW ANY ANY MATERIALIZED MATERIALIZED
Crear vistas en el esquema del usuario Crear vistas en cualquier esquema Borrar cualquier vista en cualquier esquema Crear subvistas
Instantneas (Snapshots o vistas materializadas)
Crear vistas materializadas (instantneas) Crear vistas materializadas (instantneas) en cualquier esquema Modificar vistas materializadas (instantneas) en cualquier esquema Borrar vistas materializadas (instantneas) en cualquier esquema Permite realizar operaciones de lectura escritura en instantneas que usan tablas de otros esquemas Crear instantneas (obsoleto) (14)
Privilegio
ALTER ANY SNAPSHOT CREATE ANY SNAPSHOT DROP ANY SNAPSHOT CREATE PROCEDURE ALTER ANY PROCEDURE CREATE ANY PROCEDURE DROP ANY PROCEDURE EXECUTE ANY PROCEDURE CREATE TRIGGER ALTER ANY TRIGGER CREATE ANY TRIGGER DROP ANY TRIGGER ADMINISTER DATABASE TRIGGER CREATE LIBRARY CREATE ANY LIBRARY DROP ANY TRIGGER DROP LIBRARY DROP ANY LIBRARY EXECUTE ANY LIBRARY CREATE TYPE ALTER ANY TYPE CREATE ANY TYPE DROP ANY TYPE EXECUTE ANY TYPE
Permite Modificar instantneas de cualquier usuario (obsoleto) Crear instantneas a cualquier usuario (obsoleto) Borrar instantneas (obsoleto)
PL/SQL
Crear procedimientos y funciones PL/SQL Modificar procedimientos y funciones de cualquier usuario Crear funciones y procedimientos en cualquier esquema Borrar cualquier procedimiento en cualquier esquema Ejecutar cualquier procedimiento en cualquier esquema Crear triggers Modificar triggers de cualquier usuario Crear triggers en cualquier esquema Borrar triggers de cualquier esquema Crear triggers de sistema (requiere adems el privilegio CREATE TRIGGER) Crear libreras de procedimientos y funciones en el esquema de usuario Crear libreras de procedimientos y funciones en cualquier esquema Borrar cualquier trigger Borrar librera de procedimientos y funciones en el esquema de usuario Borrar libreras de procedimientos y funciones en cualquier esquema Ejecutar cualquier librera
Tipos de datos
Crear tipos de datos personales Modificar tipos de datos personales en cualquier usuario Crear tipos de datos en cualquier esquema Borrar tipos de datos de cualquier esquema Permite invocar a tipos de datos personales presentes en cualquier esquema
ndices
ALTER ANY INDEX CREATE ANY INDEX DROP ANY INDEX ALTER ANY SEQUENCE CREATE ANY SEQUENCE CREATE ANY SYNONYM
Modificar ndices de la base de datos (incluye modificar claves primarias, secundarias,) Crear ndices en cualquier esquema Borrar ndices en cualquier esquema
Secuencias y sinnimos
Modificar secuencias de cualquier usuario Crear secuencias en cualquier esquema Crear sinnimos en cualquier esquema (15)
Privilegio
CREATE SEQUENCE CREATE SYNONYM CREATE PUBLIC SYNONYM DROP PUBLIC SYNONYM CREATE ANY SEQUENCE DROP ANY SEQUENCE DROP ANY SYNONYM SELECT ANY SEQUENCE CREATE CLUSTER ALTER ANY CLUSTER CREATE ANY CLUSTER DROP ANY CLUSTER CREATE ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT DROP ROLLBACK SEGMENT CREATE DATABASE LINK CREATE LINK CREATE LINK PUBLIC DATABASE
Permite Crear secuencias Crear sinnimos Crear sinnimos pblicos Borrar sinnimos pblicos Crear secuencias en cualquier esquema Borrar secuencias en cualquier esquema Borrar sinnimos en cualquier esquema Seleccionar cualquier secuencia de cualquier esquema
Clusters
Crea y modifica clusters en el esquema actual Modificar clusters Crear clusters en cualquier esquema Borrar cualquier cluster
Segmentos de rollback
Crear enlaces privados a bases de datos en el esquema del usuario Crear enlaces pblicos a bases de datos Modificar enlaces privados a bases de datos Modificar enlaces pblicos a bases de datos Borrar enlaces pblicos a bases de datos
Programacin de tareas
CREATE EXTERNAL JOB EXECUTE ANY PROGRAM EXECUTE ANY CLASS MANAGE SCHEDULER ANALYZE ANY
Crear trabajo planificado en el esquema actual Crea, modifica y elimina tareas, programas y credenciales de cualquier esquema (excepto SYS). Esto permite ejecutar cdigo en cualquier esquema de cualquier usuario. Crear un trabajo en el esquema de usuario procedente del planificador de tareas del sistema operativo Ejecutar cualquier programa presente en un trabajo planificado del esquema de usuario. Asignar cualquier clase a un trbajo en el esquema de usuario. Administrar el planificador de tareas,
Varios
Privilegio
ANALYZE ANY DICTIONARY SELECT ANY DICTIONARY AUDIT ANY BECOME USER COMMENT ANY TABLE SELECT ANY TRANSACTION
FORCE TRANSACTION SYSDBA SYSOPER FLASHBACK ARCHIVE ADMINISTER DEBUG CONNECT SESSION DEBUG ANY PROCEDURE
Permite Analizar cualquier elemento del diccionario de datos Realizar SELECT sobre las vistas del diccionario de datos Auditar a cualquier objeto de la base de datos Convertirse en otro usuario al utilizar algunas de las utilidades de Oracle Realizar comentarios sobre tablas, columnas y vistas en cualquier esquema de la base de datos Seleccionar los datos de la vista FLASHBACK_TRANSACTION_QUERY que controla el proceso de la actual operacin flashback. Forzar aceptar (COMMIT) las transacciones en duda en un sistema distribuido de bases de datos en cualquier conexin Forzar aceptar (COMMIT) la transaccin actual en caso de duda. Privilegio general de administrador Privilegio general de administrador (ms bajo que el anterior) Crea, elimina o modifica cualquier archivo de flashback Conectar la sesin a un depurador Conectar procedimientos, funciones y/o cdigo Java a un depurador
(17)
(2.6.3) revocar
Se realiza con la instruccin REVOKE que funciona de esta forma: REVOKE privilegio1 [,privilegio2 [,]] FROM usuario; Al revocar los privilegios, las acciones llevadas a cabo con ellos no se anulan.
(19)
La opcin IDENTIFIED funciona igual que las formas de identificar un usuario, salvo la opcin PACKAGE que hace que el rol slo se pueda utilizar para el paquete de aplicaciones indicado. Por defecto un ROL no requiere identificacin. La instruccin ALTER ROLE permite modificar la configuracin del rol (tiene las mismas opciones que CREATE ROLE)
Las posibilidades son: Indicar una lista de roles que sern los que se activen (se usa cuando se haban desactivado) Indicar ALL para activar todos los roles, excepto aquellos que se indiquen en la clusula EXCEPT que quedarn sin activar. NONE desactiva todos los roles, slo quedar activadol el rol marcado por defecto y los privilegios individuales marcados explcitamente.
(21)
En realidad hay dos tipos de parmetros de los perfiles: Manejo de contraseas, los posibles cambios respecto a ese aspecto son: Variable de perfil FAILED_LOGIN_ATTEMPTS Significado Nmero consecutivo de errores en las contraseas antes de bloquear la cuenta. Por defecto son 10 Nmero de das hasta que se bloquea una cuenta si se supera el lmite de intentos al meter una contrasea. Por defecto es uno Nmeros de das que tiene vigencia una contrasea. Por defecto es 180 Das que la contrasea se la concede un periodo extra de gracia tras consumir su tiempo de vida. Por defecto es 7 Nmero de das que una contrasea puede ser reutilizada Funcin a la que se invoca cuando se modifica una contrasea con el fin de verificar su validez en base a las reglas de complejidad que deseemos
PASSWORD_LOCK_TIME
PASSWORD_LIFE_TIME PASSWORD_GRACE_TIME
PASSWORD_REUSE_TIME PASSWORD_VERIFY_FUNCTION
Manejo de recursos. Variable de perfil SESSIONS_PER_USER CPU_PER_SESSION Significado Nmero de conexiones de usuario concurrentes que se permiten. Lmite de tiempo (en centsimas de segundo) que se permite a un usuario utilizar la CPU antes de ser echado del sistema. De esa forma se evitan peligros de rendimiento Como la anterior pero referida a cada proceso Para conexiones en instalaciones de servidor compartido, nmero de KB que puede consumir cada sesin en la zona de memoria compartida (SGA) Minutos como mximo que se permite a una sesin Minutos mximos de inactividad de una sesin Mximo nmero de bloques ledos en una sesin Mximo nmero de bloques ledos por un proceso Mximo nmero de recursos consumidos por una sesin. Es la media ponderada de varios parmetros anteriores
CPU_PER_CALL PRIVATE_SGA
(22)
(23)
(24)
Se pueden crear usuarios sin indicar contraseas. El nombre de usuario debe incluir el host (como se coment en el apartado anterior), de otro modo usar el host '%' que representa a cualquier mquina (es un usuario global). No es obligatorio el apartado IDENTIFIED BY que permite indicar la contrasea; si no se hace uso de l, la contrasea del usuario queda en blanco (situacin nada recomendable). La contrasea se puede indicar en texto plano o a travs de la funcin PASSWORD indicado el resultado de aplicar la funcin PASSWORD() (de esa forma se oculta el texto plano). Los usuarios as creados no tienen privilegios asociados,
(25)
(26)
Adems existen cinco niveles de aplicacin de los permisos: Nivel global. Se aplican a todas las bases de datos. Por lo que se deben aplicar obligatoriamente al objeto *.* Ejemplos de privilegios que se aplican obligatoriamente a este nivel son CREATE USER o SHUTDOWN Nivel de bases de datos. Se aplican a todos los objetos de una base de datos. Se deben de aplicar usando el asterisco en las tablas pero un nombre de base de datos. Nivel de tabla. Se aplican slo a una tabla. Nivel de columna. Se aplican a columnas de una tabla Nivel de rutina. Son privilegios que se aplican a rutinas. La clusula IDENTIFIED BY permite incluso crear el usuario al que se da permisos; de hecho antes de la versin 5 de MySQL era la forma de crear usuarios. Los posibles permisos (apartado tiposDePrivilegio de la sintaxis de GRANT) que se pueden otorgar son: Permiso ALL [PRIVILEGES] ALTER ALTER ROUTINE CREATE CREATE ROUTINE CREATE TEMPORARY TABLES CREATE USER Significado Otorga todos los privilegios Permite el uso de ALTER TABLE Modifica o borra rutinas almacenadas Permite crear tablas Crea rutinas almacenadas Permite el uso de CREATE TEMPORARY TABLE Permite el uso de CREATE USER, DROP USER, RENAME USER, y REVOKE ALL PRIVILEGES Permite crear vistas Permite eliminar filas de tablas DROP Permite el uso de DROP TABLE Permite ejecutar rutinas Permite importar y exportar datos mediante SELECT ... INTO OUTFILE y LOAD DATA INFILE Permite crear y borrar ndices Permite aadir filas Permite el uso de LOCK TABLES en tablas para las que tenga el permiso SELECT Permite el uso de SHOW FULL PROCESSLIST Permite el uso de FLUSH Permite al usuario preguntar dnde estn los servidores maestro o esclavo (27)
UPDATE USAGE
Significado Necesario para los esclavos de replicacin (para leer eventos del log binario desde el maestro) Permite consultar datos Permite consular la lista completa de bases de datos Permite el uso de SHOW CREATE VIEW Permite el uso de mysqladmin shutdown, que cierra la instancia de MySQL Permite el uso de los comandos CHANGE MASTER, KILL, PURGE MASTER LOGS, y SET GLOBAL; adems se permite al usuario que el comando mysqladmin debug le permita conectar (una vez) incluso si se ha superado el nmero mximo de conexiones. Permite la modificacin de datos Sin privilegios, el estado que tiene un usuario que se acaba de crear con CREATE USER. Permite dar permisos
GRANT INSERT,DELETE,UPDATE,SELECT ON almacen.pedidos TO ana; #Permite a la usuaria ana@% permisos de modificacin adicin , #borrado y consulta sobre la tabla pedidos de la base de datos almacen GRANT INSERT,DELETE,UPDATE,SELECT ON almacen.pedidos TO mario WITH GRANT OPTION; #Igual que la anterior para el usuario mario@% que adems podr el #mismo conceder esos permisos GRANT SELECT ON almacen.* TO felipe@192.168.1.32;
#al usuario indicado se le permite consultar todas las tablas del almacen
GRANT CREATE ON almacen.* TO julian IDENTIFIED BY 'Caswq1209'; #Crea o modifica (si existe) el usuario Julian con la contrasea indicada y permiso de creacin de tablas en la base de datos almacn
ON [tipoDeObjeto]{tabla | * | *.* | baseDeDatos.* | baseDeDatos.tabla} FROM usuario1[, usuario2[,]] Ejemplo: REVOKE SHUTDOWN ON *.* FROM alberto@localhost; REVOKE INSERT,DELETE,UPDATE ON almacen.pedidos FROM clara; REVOKE ALL PRIVILEGES, GRANT OPTION FROM ana, elena; La ltima instruccin elimina todos los privilegios.
(29)