Wuolah Free SentenciasDCL 1
Wuolah Free SentenciasDCL 1
Wuolah Free SentenciasDCL 1
AlinVranau
Bases de Datos
BRIANDA DE MENDOZA
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
(2)
índice
(2.1) introducción ____________________________________________________ 7
(2.2) cuentas y permisos administrativos _______________________________ 7
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
(2.2.1) cuentas administrativas 7
(2.2.2) privilegios administrativos 8
(2.3) características de los usuarios de Oracle ___________________________ 8
(2.4) autentificación __________________________________________________ 9
(2.4.1) autentificación por el sistema operativo 9
(2.4.2) autentificación por archivo de contraseñas 9
(2.4.3) autentificación por contraseña 10
(2.4.4) autentificación externa 10
(2.4.5) autentificación global 10
(2.5) control de usuarios en Oracle____________________________________ 10
(2.5.1) creación de usuarios en Oracle 10
(2.5.2) modificación de usuarios 11
(2.5.3) borrado de usuarios 11
(2.5.4) consultar usuarios 11
(2.6) control de privilegios en Oracle __________________________________ 12
(2.6.1) privilegios de sistema 12
(2.6.2) conceder privilegios 17
(2.6.3) revocar 18
(2.6.4) privilegios de objeto 18
(2.6.5) quitar privilegios de objeto 19
(2.6.6) mostrar información sobre privilegios 19
(2.7) administración de roles en Oracle________________________________ 19
(2.7.1) creación de roles 19
(2.7.2) asignar y retirar privilegios a roles 20
(2.7.3) asignar roles 20
(2.7.4) roles predefinidos 20
(2.7.5) activar y desactivar roles 20
(2.7.6) asignar a un usuario un rol por defecto 21
(2.7.7) borrar roles 21
(2.7.8) información sobre roles 21
(2.8) administración de perfiles de Oracle _____________________________ 21
(2.8.1) crear perfiles 23
(2.8.2) modificar perfiles 23
(2.8.3) borrar perfil 23
(2.8.4) asignar un perfil a un usuario 23
(4)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
(5)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
control de acceso a
la base de datos.
DCL
(2.1) introducción
Todo acceso a una base de datos requiere conectar mediante un usuario y contraseña.
Dicho usuario dará derecho a utilizar ciertos objetos de la base de datos, pero se puede
restringir el uso de otros.
A los usuarios se les asigna una serie de privilegios que son los que dan permiso de
uso a ciertos objetos. Para organizarse mejor la mayoría de Sistemas Gestores de Bases
de Datos permiten agrupar permisos que normalmente se aplican conjuntamente en
estructuras llamadas perfiles y roles, que en definitiva son un conjunto de permisos.
Por ello cuando un usuario conecta debe probar que es quien dice ser (normalmente
mediante una contraseña), es decir se autentifica. Por otro lado esta autentificación
dará lugar a unos privilegios (unos derechos) y unas restricciones.
Todo lo que se explica en este tema se refiere a la gestión de usuarios en la base de
datos Oracle 11g.
(7)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
(2.2.2) privilegios administrativos
Oracle posee dos privilegios de sistema asociados a tareas administrativas, son:
SYSDBA. Con capacidad de parar e iniciar (instrucciones SHUTDOWN y
STARTUP) la instancia de base de datos; modificar la base de datos (ALTER
DATABASE), crear y borrar bases de datos (CREATE y DROP DATABASE), Crear
el archivo de parámetros (CREATE SPFILE), cambiar el modo de archivado de la
base de datos, recuperar la base de datos y además incluye el privilegio de
sistema RESTRICTED SESSION. En la práctica es usar el usuario SYS.
SYSOPER. Permite lo mismo que el anterior salvo: crear y borrar la base de
datos y recuperar en todas las formas la base de datos (hay modos de
recuperación que requieren el privilegio anterior).
(8)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
(2.4) autentificación
La autentificación define la forma en la que el usuario verifica quién es. Hay métodos
de autentificación más seguros que otros. Asegurar la autentificación implicaría
asegurar el medio la comunicación entre usuario y base de datos con protocolos de
cifrado. Por otro lado hay que proteger especialmente a los usuarios administradores.
En este caso usamos los privilegios del sistema operativo para conectar con una base de
datos remota cuyo nombre de servicio de red se indique. Esta forma sólo vale para
máquinas dentro de un dominio Windows.
Funcionamiento:
FILE. Permite indicar el nombre del archivo de contraseñas
ENTRIES. Indica el máximo número de contraseñas que admitirá el archivo
FORCE. En caso de darle el valor y sobrescribe las contraseñas cuando
asignemos una nueva a un usuario administrativo
IGNORECASE. No tiene en cuenta mayúsculas ni minúsculas en las contraseñas.
(9)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
administración de bases de datos
(Unidad 2) control del acceso a la base de datos
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
En este caso los usuarios son autentificados mediante una contraseña que se contrastará
en el diccionario de datos que es donde se almacenan estas contraseñas. Es el método
habitual de autentificación para usuarios no administrativos. Está configuración requiere
la base de datos montada y abierta (al tener que usar el diccionario de datos).
La contraseña se pasa encriptada desde el ordenador cliente al servidor mediante el
algoritmo AES.
(10)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
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}]
Sólo la primera línea es obligatoria, el resto posee opciones por defecto que se aplican
si no se especifica cada apartado (no hace falta especificar todos, sólo las líneas 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)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Privilegios de sistema. Son permisos para modificar el funcionamiento de la
base de datos. Son cambios, en definitiva, que afectan a todos los usuarios y
usuarias.
Privilegios de objeto. Son permisos que se aplican a un objeto concreto de la
base de datos.
Privilegio Significado
CREATE SESSION Permite al usuario conectar con la base de
datos
RESTRICTED SESSION Permite al usuario establecer sesión con la
base de datos en caso de que la base de datos
esté en modo restringido mediante la
instrucción:
ALTER SYSTEM ENABLE RESTRICTED
SESSION
Sólo los usuarios con este privilegio puede
conectar con la base de datos si ésta se
encuentra en este modo.
ALTER DATABASE Permite modificar la estructura de la base de
datos
ALTER SYSTEM Permite modificar los parámetros y variables
del sistema
CREATE TABLE Permite crear tablas. Incluye la posibilidad de
borrarlas.
GRANT ANY OBJECT PRIVILEGE Permite conceder privilegios sobre objetos que
no son del usuario (pertenecen a otros
usuarios) a terceros usuarios.
CREATE ANY TABLE Permite crear tablas en otros esquemas de
usuario
DROP ANY TABLE Permite borrar tablas de otros usuarios
SELECT ANY TABLE Permite seleccionar datos en tablas de otros
usuarios
INSERT ANY TABLE Permite añadir datos en tablas de otros
usuarios
UPDATE ANY TABLE Permite eliminar datos en tablas de otros
usuarios
(12)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Privilegio Significado
DELETE ANY TABLE Permite eliminar datos en tablas de otros
usuarios
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 creación 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 Permite
Sesiones
CREATE SESSION Conectar a la base de datos
ALTER SESSION Modificar el funcionamiento de la sesión
ALTER RESOURCE COST Modifica los parámetros de cálculo de coste de la sesión
RESTRICTED SESSION Conectar aunque la base de datos se haya iniciado en
modo restringido
Base de datos y sistema
ALTER DATABASE Modificar la base de datos (privilegio de gran capacidad
administrativa)
ALTER SYSTEM Modificar los parámetros del sistema
AUDIT SYSTEM Auditar la base de datos
Usuarios, roles, privilegios y perfiles
CREATE USER Crear usuarios pudiendo indicar tablespace por defecto,
cuotas y perfiles
ALTER USER Modificar al usuario. Permite cambiar la contraseña y
modo de autentificación, tablespace por defecto, cuota
de uso de disco, roles y el perfil del usuario
DROP USER Borrar usuario
CREATE PROFILE Crear perfiles
ALTER PROFILE Modificar perfiles
DROP PROFILE Borrar perfiles
CREATE ROLE Crear roles
ALTER ANY ROLE Modificar roles
GRANT ANY ROLE Conceder roles
GRANT ANY PRIVILEGE Conceder privilegios de objeto
GRANT ANY SYSTEM Conceder privilegios de sistema
PRIVILEGE
Directorios
CREATE ANY DIRECTORY Crear directorios
DROP ANY DIRECTORY Borrar directorios
(13)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
administración de bases de datos
(Unidad 2) control del acceso a la base de datos
Privilegio Permite
Tablespaces (espacios de tabla)
CREATE TABLESPACES Crear tablespaces
ALTER TABLESPACE Modificar tablespaces
DROP TABLESPACE Borrar tablespaces
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
MANAGE TABLESPACE Administrar el espacio de tablas para poder hacer copia
de seguridad o simplemente quedar online u offline el
tablespace
UNLIMITED TABLESPACE Usa cuota ilimitada al escribir en cualquier tablespace.
Este privilegio elimina las cuotas establecidas sobre el
usuario, si las hubiera.
Tablas
CREATE TABLE Crear tablas en el esquema del usuario, incluye
insertar, modificar y eliminar datos de la misma; así
como eliminar la propia tabla
ALTER ANY TABLE Modificar tablas de cualquier usuario
BACKUP ANY TABLE Utilizar la utilidad Export para copiar datos de otros
esquemas.
CREATE ANY TABLE Crear tablas en cualquier esquema
DELETE ANY TABLE Borrar filas de tablas en cualquier esquema
DROP ANY TABLE Borrar tablas en cualquier esquema
INSERT ANY TABLE Añadir datos a cualquier tabla
SELECT ANY TABLE Seleccionar datos de tablas en cualquier esquema
UPDATE ANY TABLE Modificar datos de tablas de cualquier esquema
LOCK ANY TABLE Bloquear tablas, vistas e instantáneas en cualquier
esquema
FLASHBACK ANY TABLE Realizar acción de flashback en tablas, vistas e
instantáneas en cualquier esquema
Vistas
CREATE VIEW Crear vistas en el esquema del usuario
CREATE ANY VIEW Crear vistas en cualquier esquema
DROP ANY VIEW Borrar cualquier vista en cualquier esquema
UNDER ANY VIEW Crear subvistas
Instantáneas (Snapshots o vistas materializadas)
CREATE MATERIALIZED VIEW Crear vistas materializadas (instantáneas)
CREATE ANY MATERIALIZED Crear vistas materializadas (instantáneas) en cualquier
VIEW esquema
ALTER ANY MATERIALIZED Modificar vistas materializadas (instantáneas) en
VIEW cualquier esquema
DROP ANY MATERIALIZED Borrar vistas materializadas (instantáneas) en cualquier
VIEW esquema
GLOBAL QUERY REWRITE Permite realizar operaciones de lectura escritura en
instantáneas que usan tablas de otros esquemas
CREATE SNAPSHOT Crear instantáneas (obsoleto)
(14)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Privilegio Permite
ALTER ANY SNAPSHOT Modificar instantáneas de cualquier usuario (obsoleto)
CREATE ANY SNAPSHOT Crear instantáneas a cualquier usuario (obsoleto)
DROP ANY SNAPSHOT Borrar instantáneas (obsoleto)
PL/SQL
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
CREATE PROCEDURE Crear procedimientos y funciones PL/SQL
ALTER ANY PROCEDURE Modificar procedimientos y funciones de cualquier
usuario
CREATE ANY PROCEDURE Crear funciones y procedimientos en cualquier esquema
DROP ANY PROCEDURE Borrar cualquier procedimiento en cualquier esquema
EXECUTE ANY PROCEDURE Ejecutar cualquier procedimiento en cualquier esquema
CREATE TRIGGER Crear triggers
ALTER ANY TRIGGER Modificar triggers de cualquier usuario
CREATE ANY TRIGGER Crear triggers en cualquier esquema
DROP ANY TRIGGER Borrar triggers de cualquier esquema
ADMINISTER DATABASE Crear triggers de sistema (requiere además el privilegio
TRIGGER CREATE TRIGGER)
CREATE LIBRARY Crear librerías de procedimientos y funciones en el
esquema de usuario
CREATE ANY LIBRARY Crear librerías de procedimientos y funciones en
cualquier esquema
DROP ANY TRIGGER Borrar cualquier trigger
DROP LIBRARY Borrar librería de procedimientos y funciones en el
esquema de usuario
DROP ANY LIBRARY Borrar librerías de procedimientos y funciones en
cualquier esquema
EXECUTE ANY LIBRARY Ejecutar cualquier librería
Tipos de datos
CREATE TYPE Crear tipos de datos personales
ALTER ANY TYPE Modificar tipos de datos personales en cualquier usuario
CREATE ANY TYPE Crear tipos de datos en cualquier esquema
DROP ANY TYPE Borrar tipos de datos de cualquier esquema
EXECUTE ANY TYPE Permite invocar a tipos de datos personales presentes
en cualquier esquema
Índices
ALTER ANY INDEX Modificar índices de la base de datos (incluye modificar
claves primarias, secundarias,…)
CREATE ANY INDEX Crear índices en cualquier esquema
DROP ANY INDEX Borrar índices en cualquier esquema
Secuencias y sinónimos
ALTER ANY SEQUENCE Modificar secuencias de cualquier usuario
CREATE ANY SEQUENCE Crear secuencias en cualquier esquema
CREATE ANY SYNONYM Crear sinónimos en cualquier esquema
(15)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Privilegio Permite
CREATE SEQUENCE Crear secuencias
CREATE SYNONYM Crear sinónimos
CREATE PUBLIC SYNONYM Crear sinónimos públicos
DROP PUBLIC SYNONYM Borrar sinónimos públicos
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
CREATE ANY SEQUENCE Crear secuencias en cualquier esquema
DROP ANY SEQUENCE Borrar secuencias en cualquier esquema
DROP ANY SYNONYM Borrar sinónimos en cualquier esquema
SELECT ANY SEQUENCE Seleccionar cualquier secuencia de cualquier esquema
Clusters
CREATE CLUSTER Crea y modifica clusters en el esquema actual
ALTER ANY CLUSTER Modificar clusters
CREATE ANY CLUSTER Crear clusters en cualquier esquema
DROP ANY CLUSTER Borrar cualquier cluster
Segmentos de rollback
CREATE ROLLBACK SEGMENT Crear segmentos de rollback
ALTER ROLLBACK SEGMENT Modificar segmentos de rollback
DROP ROLLBACK SEGMENT Borrar segmento de rollback
Enlaces a base de datos
CREATE DATABASE LINK Crear enlaces privados a bases de datos en el esquema
del usuario
CREATE PUBLIC DATABASE Crear enlaces públicos a bases de datos
LINK
CREATE DATABASE LINK Modificar enlaces privados a bases de datos
CREATE PUBLIC DATABASE Modificar enlaces públicos a bases de datos
LINK
DROP PUBLIC DATABASE LINK Borrar enlaces públicos a bases de datos
Programación de tareas
CREATE JOB Crear trabajo planificado en el esquema actual
CREATE ANY JOB Crea, modifica y elimina tareas, programas y
credenciales de cualquier esquema (excepto SYS). Esto
permite ejecutar código en cualquier esquema de
cualquier usuario.
CREATE EXTERNAL JOB Crear un trabajo en el esquema de usuario procedente
del planificador de tareas del sistema operativo
EXECUTE ANY PROGRAM Ejecutar cualquier programa presente en un trabajo
planificado del esquema de usuario.
EXECUTE ANY CLASS Asignar cualquier clase a un trbajo en el esquema de
usuario.
MANAGE SCHEDULER Administrar el planificador de tareas,
Varios
ANALYZE ANY Analizar cualquier tabla, clúster o índice en cualquier
esquema.
(16)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Privilegio Permite
ANALYZE ANY DICTIONARY Analizar cualquier elemento del diccionario de datos
SELECT ANY DICTIONARY Realizar SELECT sobre las vistas del diccionario de datos
AUDIT ANY Auditar a cualquier objeto de la base de datos
BECOME USER Convertirse en otro usuario al utilizar algunas de las
utilidades de Oracle
COMMENT ANY TABLE Realizar comentarios sobre tablas, columnas y vistas en
cualquier esquema de la base de datos
SELECT ANY TRANSACTION Seleccionar los datos de la vista
FLASHBACK_TRANSACTION_QUERY que controla el
proceso de la actual operación flashback.
FORCE ANY TRANSACTION Forzar aceptar (COMMIT) las transacciones en duda en
un sistema distribuido de bases de datos en cualquier
conexión
FORCE TRANSACTION Forzar aceptar (COMMIT) la transacción actual en caso
de duda.
SYSDBA Privilegio general de administrador
SYSOPER Privilegio general de administrador (más bajo que el
anterior)
FLASHBACK ARCHIVE Crea, elimina o modifica cualquier archivo de flashback
ADMINISTER
DEBUG CONNECT SESSION Conectar la sesión a un depurador
DEBUG ANY PROCEDURE Conectar procedimientos, funciones y/o código Java a
un depurador
Ejemplo:
(17)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
administración de bases de datos
(Unidad 2) control del acceso a la base de datos
(2.6.3) revocar
Se realiza con la instrucción REVOKE que funciona de esta forma:
REVOKE privilegio1 [,privilegio2 [,…]] FROM usuario;
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Al revocar los privilegios, las acciones llevadas a cabo con ellos no se anulan.
Privilegio Aplicable a
SELECT Tablas, vistas, instantáneas
INSERT Tablas, vistas
UPDATE Tablas, vistas
DELETE Tablas, vistas
ALTER Tablas, secuencias
EXECUTE Procedimientos, funciones, paquetes, sinónimos, programas en
directorios
INDEX Tablas (para crear índices en la misma)
REFERENCES Tablas (para crear claves secundarias, FOREIGN KEY)
UNDER Vistas, para crear subvistas
DEBUG Depurar procedimientos y funciones mediante programa
externo
ON COMMIT REFRESH Actualizar la vista materializada (o instantánea) al realizar un
COMMIT
QUERY REWRITE Escribir en la vista materializada (o instantánea)
READ Directorios
(18)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Privilegio Aplicable a
WRITE Directorios
FLASHBACK ARCHIVE Archivos de datos flashback (activar o desactivar)
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Sintaxis:
REVOKE {privilegio1 [,privilegio2] [,…]] |
ALL [PRIVILEGES]}
ON [esquema.]objeto
FROM {usuario | rol | PUBLIC} [,{usuario | rol | PUBLIC} [,…]]
[CASCADE CONSTRAINTS]
Vista Significado
DBA_SYS_PRIVS Privilegios de sistema asignados a usuarios y roles
DBA_TAB_PRIVS Lista de todos los privilegios de todos los objetos
de la base de datos
DBA_COL_PRIVS Lista de todos los privilegios aplicados a
columnas de la base de datos
SESSION_PRIVS Privilegios en activo para el usuario y sesión
actuales
(19)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
La opción IDENTIFIED funciona igual que las formas de identificar un usuario, salvo la
opción PACKAGE que hace que el rol sólo se pueda utilizar para el paquete de
aplicaciones indicado. Por defecto un ROL no requiere identificación.
La instrucción ALTER ROLE permite modificar la configuración del rol (tiene las
mismas opciones que CREATE ROLE)
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
(2.7.2) asignar y retirar privilegios a roles
Se realiza con la instrucción GRANT. A los roles se les asignan privilegios igual que a los
usuarios, pueden ser de sistema y/o de objeto.
Lógicamente se eliminan mediante REVOKE.
Al igual que en las instrucciones anteriores, PUBLIC asigna el rol a todos los usuarios y
WITH ADMIN OPTION permite al usuario al que se le concede el rol, conceder él dicho
rol a otros usuarios/as.
(20)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Funciona de forma similar a SET ROL, pero sirve para colocar un rol por
(21)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
administración de bases de datos
(Unidad 2) control del acceso a la base de datos
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
contraseñas antes de bloquear la cuenta. Por
defecto son 10
PASSWORD_LOCK_TIME Número de días hasta que se bloquea una cuenta
si se supera el límite de intentos al meter una
contraseña. Por defecto es uno
PASSWORD_LIFE_TIME Números de días que tiene vigencia una
contraseña. Por defecto es 180
PASSWORD_GRACE_TIME Días que la contraseña se la concede un periodo
extra de gracia tras consumir su tiempo de vida.
Por defecto es 7
PASSWORD_REUSE_TIME Número de días que una contraseña puede ser
reutilizada
PASSWORD_VERIFY_FUNCTION Función a la que se invoca cuando se modifica
una contraseña con el fin de verificar su validez
en base a las reglas de complejidad que
deseemos
Manejo de recursos.
(22)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Los parámetros son los explicados anteriormente a los que se les indica un valor, o bien
la palabra DEFAULT (significa que el parámetro toma su valor por defecto) o bien
UNLIMITED para indicar que no tienen límite. Ejemplo:
(23)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
(2.9.1) cuentas de usuario en MySQL
En MySQL el nombre de un usuario está compuesto por el nombre seguido del signo @ y
después el ordenador desde el que dicho usuario se conecta, porque se asume que no es
lo mismo el usuario pepe@192.168.1.35 que pepe@192.168.1.36, es decir hay
diferentes usuarios de nombre pepe y tendrán por tanto diferentes privilegios según de
qué pepe hablemos en base a la máquina o la red desde la que se conectan.
A partir de esta idea, cuando un usuario se conecta primero se comprueba si tiene
permiso para hacerlo (suponiendo que la contraseña sea correcta). Después cada
operación que intenta realizar será controlada para saber si se permite o no.
La tabla mysql.user, es decir: tabla user de la base de datos mysql que contiene la
información sobre los usuarios de mysql. En ella se observa una de las particularidades
de MySQL, los usuarios usan un nombre seguido del host. De esa forma dos usuarios
pueden parecer iguales pero al variar la parte del host, se convierten en dos usuarios
diferentes. Por ejemplo, usuario@192.168.1.10 sería diferente de usuario@192.168.1.11
En MYSQL el nombre de usuario debe de cumplir:
Tener un máximo de 16 caracteres
Debe comenzar por letra
No puede repetirse para el mismo host
Si el usuario lleva espacios en blanco, se coloca entre comillas simples
Cada usuario tiene asociada una contraseña así como una serie de operaciones posibles
para realizar.
(24)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Se pueden crear usuarios sin indicar contraseñas. 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 máquina (es un usuario global).
No es obligatorio el apartado IDENTIFIED BY que permite indicar la contraseña; si no
se hace uso de él, la contraseña del usuario queda en blanco (situación nada
recomendable). La contraseña se puede indicar en texto plano o a través de la función
PASSWORD indicado el resultado de aplicar la función PASSWORD() (de esa forma se
oculta el texto plano).
Los usuarios así creados no tienen privilegios asociados,
(25)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
administración de bases de datos
(Unidad 2) control del acceso a la base de datos
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
GRANT tipoDePrivilegio[(listaColumnas1)][, tipoDePrivilegio[(listaColumnas2)][,…]]
ON [tipoDeObjeto]{tabla | * | *.* | baseDeDatos.* | baseDeDatos.tabla}
TO usuario1 [IDENTIFIED BY [PASSWORD] 'contraseña'][, usuario2…]
[WITH opción [,opción2[,…]]]
(26)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
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 sólo a una tabla.
Nivel de columna. Se aplican a columnas de una tabla
Nivel de rutina. Son privilegios que se aplican a rutinas.
Permiso Significado
ALL [PRIVILEGES] Otorga todos los privilegios
ALTER Permite el uso de ALTER TABLE
ALTER ROUTINE Modifica o borra rutinas almacenadas
CREATE Permite crear tablas
CREATE ROUTINE Crea rutinas almacenadas
CREATE TEMPORARY TABLES Permite el uso de CREATE TEMPORARY
TABLE
CREATE USER Permite el uso de CREATE USER, DROP
USER, RENAME USER, y REVOKE ALL
PRIVILEGES
CREATE VIEW Permite crear vistas
DELETE Permite eliminar filas de tablas
DROP DROP Permite el uso de DROP TABLE
EXECUTE Permite ejecutar rutinas
FILE Permite importar y exportar datos
mediante SELECT ... INTO OUTFILE y
LOAD DATA INFILE
INDEX Permite crear y borrar índices
INSERT Permite añadir filas
LOCK TABLES Permite el uso de LOCK TABLES en tablas
para las que tenga el permiso SELECT
PROCESS Permite el uso de SHOW FULL
PROCESSLIST
RELOAD Permite el uso de FLUSH
REPLICATION CLIENT Permite al usuario preguntar dónde están
los servidores maestro o esclavo
(27)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Permiso Significado
REPLICATION SLAVE Necesario para los esclavos de replicación
(para leer eventos del log binario desde el
maestro)
SELECT Permite consultar datos
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
SHOW DATABASES Permite consular la lista completa de
bases de datos
SHOW VIEW Permite el uso de SHOW CREATE VIEW
SHUTDOWN Permite el uso de mysqladmin shutdown,
que cierra la instancia de MySQL
SUPER Permite el uso de los comandos CHANGE
MASTER, KILL, PURGE MASTER LOGS, y
SET GLOBAL; además se permite al
usuario que el comando mysqladmin
debug le permita conectar (una vez)
incluso si se ha superado el número
máximo de conexiones.
UPDATE Permite la modificación de datos
USAGE Sin privilegios, el estado que tiene un
usuario que se acaba de crear con CREATE
USER.
GRANT OPTION Permite dar permisos
Ejemplos:
GRANT INSERT,DELETE,UPDATE,SELECT ON almacen.pedidos TO ana;
#Permite a la usuaria ana@% permisos de modificación adición ,
#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 además 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 ALL ON almacen.* TO clara;
#clara puede hacer cualquier operación sobre la tabla de almacenes
GRANT CREATE ON almacen.* TO julian IDENTIFIED BY 'Caswq1209';
#Crea o modifica (si existe) el usuario Julian con la contraseña
indicada y permiso de creación de tablas en la base de datos almacén
(28)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Todas las tablas anteriores se pueden manipular para conceder o quitar permisos,
aunque no es muy lógico que esas operaciones se hagan así.
(29)
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-8722462
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.