Subido por Math Jhss

CLASE 15 - USUARIO Y PRIVILEGIOS.

Anuncio
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
I.
TEMA:
•
•
•
•
•
II.
Crear USUARIOS BASE DE DATOS DE CONTROL
Crear USUARIOS en la BD
Asignar/Denegar Permisos sobre el sistema
Asignar/Denegar Permisos sobre los objetos de las Bases de Datos
Crear PERFILES, PRIVILEGIOS Y ROLES.
MARCO TEORICO
2.1
CUENTAS DE USUARIO
Tanto Oracle como SQL Server utilizan el concepto de cuenta de usuario para
que los usuarios autorizados puedan conectarse a la base de datos. En Oracle recibe
el nombre de usuario o username. En SQL Server se le llama login ID o
simplemente login. Cualquier operación que realice un usuario está regida por los
privilegios asignados a su cuenta.
En las bases de datos Oracle encontramos tres tipos de usuarios:
• Propietarios del Esquema usuarios que crean y mantienen los objetos
relacionados con una aplicación
• Usuarios de la aplicación usuarios (o sistemas) que manipulan los datos de
las tablas creadas por los propietarios.
• Usuarios administrativos usuarios con roles especiales como el de
administrador de la base de datos o administrador de la seguridad.
2.1.1 CARACTERÍSTICAS DE LOS USUARIOS DE ORACLE
A los usuarios de Oracle se les puede asignar la configuración referida a:
• Nombre de usuario. No puede repetirse y como máximo debe tener 30
caracteres que sólo podrán contener letras del alfabeto inglés, números, el
signo dólar y el signo de guión bajo (_)
•
Configuración física. Se refiere al espacio asociado al usuario para
almacenar sus datos (lo que Oracle llama tablespace) y la cuota (límite de
almacenamiento) que se le asigna.
UD. Base de Datos en Servidor Windows
1
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
•
Perfil asociado. El perfil del usuario indica los recursos y configuración que
tomará el usuario al sistema
•
Privilegios y roles. Permiten especificar las acciones que se le permiten
realizar al usuario.
•
•
ESTADO DE LA CUENTA DE USUARIO:
Abierta. El usuario puede conectar y realizar sus acciones habituales
Bloqueada. EL usuario no podrá conectar mientras siga en estado bloqueado.
El bloqueo lo realiza el DBA:
•
ALTER USER usuario ACCOUNT LOCK
Expirada. La cuenta agotó el tiempo máximo asignado a ella. Para salir de
este estado, el usuario/a debe resetear su contraseña de usuario.
•
Expirada y bloqueada.
•
Expirada en periodo de gracia. Está en los últimos momentos de uso antes
de pasar a estado de expirada.
2.2 CONCEPTOS DE GESTIÓN DE PRIVILEGIOS Y RECURSOS
Concepto Significado
Privilegio Permiso para realizar una acción, asignable a un usuario o un rol
Rol
Conjunto de privilegios, asignables a un usuario o un rol
Usuario
Colección de objetos y privilegios identificado con un nombre y
password
Perfil
Conjunto de restricciones relativas al uso de recursos, y asignable a
usuarios. Un usuario sólo puede tener un perfil
Recurso
Uso susceptible de ser restringido, asignable a un perfil
2.2.1 PRIVILEGIOS
• Por defecto un usuario no posee ningún privilegio en Oracle, estos deben ser
asignados.
• Para ello se emplean las instrucciones GRANT y REVOKE.
• Usuarios DBA tienen derechos a asignar todos los tipos de privilegios
• Existen 200 privilegios del sistema, veremos los más importantes:
 CREATE SESSION: permite que un usuario pueda conectarse a la base
de datos
UD. Base de Datos en Servidor Windows
2
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
 ALTER DATABASE: permite ejecutar comandos para modificar la
estructura física.
 ALTER SYSTEM: permite modificar parámetros de la instancia y
estructuras de memoria
 CREATE TABLE: permite ejecutar DML y DDL en el esquema del
propietario
 SELECT ANY TABLE
EJEMPLO:
Grant create session, alter session, create table, create view, create synonym,
create cluster, create database link, create sequence, create trigger, create
type, create procedure, create operator to JuanPerez;
2.2.2 ROLES
• Asignar privilegios es complicado y tedioso porque puede ser necesario
digitar cientos de grant.
• Un ROL agrupa un gran conjunto de privilegios. Sisntaxis:
CREATE ROLE NombreRol;
• Los grant a un rol normalmente incluyen WITH ADMIN o WITH OPTION
Ejemplo
 Se crearán 3 roles con privilegios.
Create role hr_junior;
Grant create session to hr_junior;
Grant select on hr.regions to hr_junior;
Create Role hr_senior;
Grant hr_junior to hr_senior with admin option;
Grant insert, update, delete on hr.regions to hr_senior;
2.2.3 ROLES PREDEFINIDOS
 Connect: por compatibilidad ahora equivale al privilegio CREATE
SESSION
 Resource: Todos los permisos necesarios para tener recursos para la
creación de objetos
 DBA: Todos los permisos para un administrador de base de datos
(DBA)
 SCHEDULER_ADMIN: privilegios para manejar trabajos planificados.
2.2.4 PROFILE
• Para obligar una política de password y para restringir los recursos a una
sesión.
• La política de password siempre está activa, la limitación a recursos a una
sesión debe indicarse en el parámetro RESOURCE_LIMIT
UD. Base de Datos en Servidor Windows
3
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
2.6 GESTION DE PRIVILEGIOS Y RECURSOS
III. DESARROLLO
Creación de usuarios:
Sintaxis:
CREATE USER nombre IDENTIFIED BY 'contraseña'
EXTERNALLY | GLOBALLY AS nombreGlobal}
[DEFAULT TABLESPACE tableSpacePorDefecto]
[TEMPORARY TABLESPACE tableSpacetTemporal]
[QUOTA {cantidad [K|M] | UNLIMITED} ON tablespace
]
[PASSWORD EXPIRE]
[ACCOUNT {UNLOCK|LOCK}];
[PROFILE {perfil | DEFAULT}]
Para la gestión de se utilizan los comandos
Usuarios
CREATE USER (crear)
ALTER USER (modificar)
DROP USER (borrar)
GRANT (conceder un permiso o un rol a un usuario)
REVOKE (denegar un permiso o un rol a un usuario)
CREACION DE USUARIOS- BASE DE DATOS CONTROL
1. Conectarse como usuario SYSTEM a la base y crear un usuario llamado
“administrador” autentificado por la base de datos. Indicar como "tablespace"
por defecto USERS y como "tablespace" temporal TEMP; asignar una cuota de
500K en el "tablespace" USERS.
UD. Base de Datos en Servidor Windows
4
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
Por código: Prerrequisitos: Privilegio de sistema CREATE USER
CREATE USER administrador IDENTIFIED BY 123456
DEFAULT TABLESPACE USERS TEMPORARY
TABLESPACE "TEMP"
QUOTA 500k ON USERS;
EJERCICIOS:
MODIFICACION DE USUARIOS
2. Modifique el usuario administrador, para bloquear la cuenta del usuario y
cambiar la contraseña a admin01.
Por código: Prerrequisitos: Privilegio de sistema ALTER USER
;
Conectarse como usuario administrador y Explique qué sucede:
3. Modifique el usuario administrador, para desbloquear la cuenta del usuario
y que la cuente expire. Conectarse como administrador y ver qué sucede. De
una solución. Escriba código:
UD. Base de Datos en Servidor Windows
5
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
;
Rpta:
VISTAS DEL DICCIONARIO DE BD:
• dba_tablespaces: tablespaces que se encuentran creado en una base de datos
• dba_profiles : donde nosotros podremos configurar los límites de recursos que queramos para
los usuarios de nuestra base de datos.
•
dba_users : Para obtener información de todos los usuarios de la base de datos, utiliza la vista
consultar usuarios La vista administrativa DBA_USERS muestra la lista y
configuración de todos los usuarios del sistema. Para observar la estructura de la
vista, siempre es conveniente usar DESCRIBE DBA_USERS.
SQL> DESC DBA_USERS;
SQL> select username from DBA_USERS;
CONCEDER PRIVILEGIOS
Se usa con la instrucción GRANT que funciona así:
GRANT privilegio1 [,privilegio2[,…]] TO usuario
[WITH ADMIN OPTION];
La opción WITH GRANT OPTION permite que el usuario al que se le concede el
privilegio puede conceder dicho privilegio a otros usuarios. Es, por tanto, una
opción a utilizar con cautela.
UD. Base de Datos en Servidor Windows
6
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
INFORMACIÓN SOBRE PRIVILEGIOS
4-Otorgar el privilegio “CREATE SESSION” al usuario “administrador” e
Intentar de nuevo la conexión sqlplus.
Código:
;
5. Conectarse como usuario “administrador” y crear un usuario llamado
“prueba00” que tenga como "tablespace" por defecto USERS y como
"tablespace" temporal TEMP; asignar una cuota de 0K en el "tablespace"
USERS. ¿Es posible hacerlo?
UD.
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
6. Conectado como usuario SYSTEM, otorgar el privilegio “create user” al
usuario
“administrador” y repetir el ejercicio anterior. Explique
7. Averiguar que usuarios de la base de datos tienen asignado el privilegio
“create user” de forma directa, ¿qué vista debe ser consultada?
8. Hacer lo mismo para el privilegio “create session”.
UD. Base de Datos en Servidor Windows
8
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
Base de Datos en Servidor Windows
6
Ing. Eder Solórzano
9. Crear dos "tablespace" llamados TS_NOMINA y TS_ACADEMO, que contendrán
datos relativos a las aplicaciones de nómina y datos académicos de los
empleados de una empresa, según las siguientes características:
UD. Base de Datos en Servidor Windows
9
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
Localizados en la unidad D:/ BD/lab14
PRIVILEGIOS SOBRE LOS OBJETOS
grant privilegio_d _objeto on nombre_tabla to usuario; grant select on t1 to
usuario;
CREACION DE ROLES
Los roles se crean usando esta sintaxis:
CREATE ROLE nombre_rol [NOT IDENTIFIED |
IDENTIFIED {BY password | EXTERNALLY |
GLOBALLY | USING package}];
UD. Base de Datos en Servidor Windows
10
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
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)
INFORMACIÓN SOBRE ROLES
Buscar en la documentación en línea y en bd el contenido de las vistas:
SQL> DESC DBA_PROFILES
SQL> DESC DBA_ROLES
SQL> DESC DBA_USERS
SQL> DESC DBA_ROLE_PRIVS
SQL> desc DBA_TAB_PRIVS
SQL> DESC DBA_SYS_PRIVS
10. probar a crear un rol llamado “Perfil_administrador”, para que permita
realizar consultas y actualizar los datos de la bd. Asígnele estos permisos solo
para las tablas regiones y clientes al usuario HR.
Ejecutar: SQL>
UD. Base de Datos en Servidor Windows
11
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
11. Comprobar en el diccionario de datos los usuarios o roles que poseen el
privilegio “CREATE ROLE”.
Crear un rol llamado conectarse que incluya los roles connect y resource, y
asignar ese rol a Scott
SQL>create role conectarse;
SQL>grant connect, resource to conectarse;
SQL>grant conectarse to scott;
12. Crear un rol llamado “ADMIN”, asignarle los privilegios “create session”,
“create user” y “CREATE ROLE”. Asignarlo al usuario administrador.
UD. Base de Datos en Servidor Windows
12
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
13. Consultar los privilegios de sistema que tiene asignados de forma directa el
usuario “administrador”, revocarlos y asignarle el rol “admin.”.
15.- Asignarle privilegios de objeto que usted cree por conveniente, para ello
tendrá que crear sus objetos.
SQL> SELECT * FROM DBA_SYS_PRIVS WHERE PRIVILEGE=’CREATE ROLE’; SQL>
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=’ADMINISTRADOR’;
PROFILE
Ver la configuracion del profile
 Para ver los profiles asignados a los usuarios:
 Select username, profile from dba_users;
 Select * from dba_profiles where profile=‘DEFAULT’;
UD. Base de Datos en Servidor Windows
13
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
Creando un nuevo profile
 Create profile dba_profile limit sessions_per_user unlimited
password_life_time 7 password_grace_time 1;
 Alter user sys profile dba_profile;
 Alter user system profile dba_profile;
 Alter user Juancito profile dba_profile;
16. Averiguar que usuarios de base de datos o que roles tienen asignado el
privilegio “CREATE PROFILE”.
SQL>
17. Asignar el permiso “CREATE PROFILE” al rol Perfil_administrador.
SQL> grant create profile to Perfil_administrador;
18. Consultar que perfiles tiene asignados cada usuario de la base de datos.
SQL> select username, profile from dba_users order by username;
19. Crear
un perfil
especificaciones:
llamado
“DESARROLLO”
con
las
siguientes
Límites aplicables a perfiles
COMPOSITE_LIMIT
Suma del máximo de CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION y
PRIVATE_SGA. Si este limite es excedido, Oracle aborta la sesión y regresa un error.
CONNECT_TIME :Tiempo permitido de conexión por sesión en minutos.
CPU_PER_CALL: Máximo tiempo de CPU por llamada en centésimas de segundo.
CPU_PER_SESSION: Máximo tiempo de CPU por sesión en centésimas de segundo.
UD. Base de Datos en Servidor Windows
14
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
IDLE_TIME: Tiempo máximo permitido sin actividad por el usuario antes de ser desconectado. Se expresa
en minutos.
LOGICAL_READS_PER_CALL: Máximo número de bloques de base de datos leídos por llamada.
LOGICAL_READS_PER_SESSION :Máximo numero de bloques de base de datos leídos por sesión.
PRIVATE_SGA: Máxima cantidad de bytes de espacio privado reservado en la SGA. Se puede expresar en
el formato enteroK para kilobytes o enteroM para megabytes.
SESSIONS_PER_USER: Máximo número de sesiones concurrentes permitidas por usuario.
FAILED_LOGIN_ATTEMPTS : Número de intentos fallidos de conexión de un usuario, antes de que Oracle
ponga la cuenta bloqueada.
PASSWORD_GRACE_TIME
Número de días de gracia para realizar un cambio de password de nuestra cuenta. Si en el periodo de
tiempo delimitado no fue cambiado el password, el password expira.
PASSWORD_LIFE_TIME: Número de días de vida de un password.
PASSWORD_LOCK_TIME: Número de días que permanecerá bloqueado un usuario después de rebasar
el límite FAILED_LOGIN_ATTEMPTS.
PASSWORD_REUSE_MAX: Número de veces que debe cambiar una contraseña antes de poder ser reusada la original.
PASSWORD_REUSE_TIME: Número de días que tienen que pasar para poder re-usar un password.
PASSWORD_VERIFY_FUNCTION: En este parámetro, se puede especificar un script para validar el
password. Por ejemplo, que tenga una determinada cantidad de caracteres, que tenga letras y números,
etcétera.
SQL> create profile desarrollo limit sessions_per_user 2 cpu_per_session
unlimited cpu_per_call 6000 connect_time 480 idle_time 2
failed_login_attempts 2 password_life_time 120;
20. Asignar el perfil anterior al usuario “administrador”.
SQL>
21. Intentar la conexión dos veces como usuario “administrador”. fallando la
contraseña, ¿qué sucede? Comprobar si la cuenta ha sido bloqueada en la
vista de base de datos correspondiente.
UD. Base de Datos en Servidor Windows
15
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
CONSULTA A LA VISTA DE BD
SQL> select username, lock_date from dba_users where username like
' administrador %';
MOSTRAR RESULTADO
Para casa:
1.- modificar el usuario Scott y cambiarle el pasword por tiger, crear como
"tablespace" por defecto hr_data y como "tablespace" temporal hr_temp;
asignar una cuota de 1000K on users, el pasword expire y desbloquear la
cuenta.
2. Abrir una sesión sqlplus e intentar conectarse como usuario
“administrador01”, ¿qué sucede?, ¿por qué?
3. Averiguar qué privilegios de sistema, roles y privilegios sobre objetos
tiene concedidos el usuario “administrador”.
4. Crear dos "tablespace" temporales, manejados de forma local, llamados
TEMP_NOMINA y TEMP_ACADEMO con las siguientes características: Por
codigo ydesde la base de datos control
UD. Base de Datos en Servidor Windows
16
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
Localizados en la unidad D:/ BD/lab14
Por codigo:
SQL> create temporary tablespace temp_academo
tempfile 'd:\bd\lab02\temp_academo01.dbf' size
500k autoextend on next 50k maxsize 600k
extent management local uniform size 100k;
Por codigo: temp_nomina y desde la base de datos control
5. como usuario administrador, intente crear una Tabla: tabla Alumno (código
int,Nombre varchar 15 )..que sucede, solucione el problema
6. como usuario administrador, conceda privilegios de objeto sobre la nueva
Tabla..y demuestre tales privilegios.
UD. Base de Datos en Servidor Windows
17
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
7. Crear un usuario y asignarle un perfil, con los recursos que crea conveniente.
Ver resultados
https://jorgesanchez.net/manuales/abd/controlusuariosoracle.html (para más información)
UD. Base de Datos en Servidor Windows
18
Ing. Eder Solórzano
INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO
PUBLICO
“MANUEL ANTONIO HIERRO POZO”
UD. Base de Datos en Servidor Windows
19
Ing. Eder Solórzano
Descargar