CONTROL DE ACCESO. curso 2008
|
|
|
- Ramón Páez del Río
- hace 10 años
- Vistas:
Transcripción
1 BASES DE DATOS I CONTROL DE ACCESO curso 2008
2 Control de Acceso Seguridad: proteger los datos contra usuarios no autorizados Comandos usados por el BDA o el propietario para conceder/revocar permisos de acceso a los objetos de la BD Conceder Privilegios (Grant) Revocar Privilegios (Revoke) a Usuarios Roles
3 Usuarios Oracle permite acceder a la base de datos, crear un esquema y manipular datos a través de usuarios CREATE USER nombre_usuario IDENTIFIED {BY password} [DEFAULT TABLESPACE tablespace_defecto] [QUOTA {integer [K M] UNLIMITED} ON tablespace]; DROP USER nombre_usuario [ CASCADE ];
4 Roles Grupos de privilegios relacionados que se otorgan a usuarios CREATE ROLE nombre_rol[ IDENTIFIED BY password ]; Oracle cuenta con roles predefinidos: CONNECT: permite conexión a BD y consulta de los datos de mis esquemas RESOURCE: permite la gestión de objetos de mi esquema (creación, modificación, borrado de vistas, tablas,...) DBA: permite la administración de la BD DROP ROLE nombre_rol;
5 Privilegios sobre objetos: DELETE: borrar objeto o parte de él INDEX: crear un índice sobre el objeto INSERT: añadir registros en tablas o vistas SELECT: seleccionar registros en tablas, vistas REFERENCES: crear claves ajenas a una tabla UPDATE: actualizar registros de tablas o vistas ALTER: modificar la estructura de una tabla o secuencia
6 Privilegios (2) de sistema: ALTER ANY INDEX ALTER ANY SECUENCE CREATE ANY TABLE CREATE TABLE CREATE USER INSERT ANY TABLE SELECT ANY TABLE GRANT ANY PRIVILEGE DROP ANY VIEW...
7 GRANT: Concesión de privilegios Se utiliza para otorgar privilegios del sistema, roles o un privilegio sobre un objeto a usuarios y/o roles GRANT {grant_system_privileges grant_object_privileges} ; grant_system_privileges: {system_privilege role ALL PRIVILEGES} TO {user role PUBLIC}... [IDENTIFIED BY password] [WITH ADMIN OPTION]
8 GRANT: Concesión de privilegios (2) grant_object_privileges: { object_privilege ALL [PRIVILEGES] } [( column [, column]... )]... ON schema. object TO {user role PUBLIC}... [WITH GRANT OPTION] [WITH HIERARCHY OPTION]
9 REVOKE: Eliminación de privilegios Se utiliza para revocar privilegios del sistema, roles o un privilegio sobre un objeto de usuarios y/o roles, REVOKE {revoke_system_privileges revoke_object_privileges} ; revoke_system_privileges: {system_privilege role ALL PRIVILEGES} FROM {user role PUBLIC}
10 REVOKE: Eliminación de privilegios (2) revoke_object_privileges: { object_privilege ALL [PRIVILEGES] } [( column [, column]... )]... ON schema. object FROM {user role PUBLIC}... [CASCADE CONSTRAINTS]
11 Ejemplo: Consola usuario admin: CONNECT admin/adminpwd; CREATE ROLE ventas; GRANT ALL ON facturas TO ventas; CREATE USER emp1 IDENTIFIED BY emp1pwd; GRANT CONNECT TO emp1; GRANT ventas TO emp1;
12 Ejemplo (2) Consola usuario emp1: CONNECT emp1/emp1pwd; SELECT * FROM facturas WHERE... Ok UPDATE facturas SET state= P WHERE... Ok GRANT ventas TO emp2; ERROR ORA-01031: insufficient privileges UPDATE facturas SET total=100 WHERE... Ok
13 Ejemplo (3) Consola usuario admin: CONNECT admin/adminpwd; REVOKE UPDATE ON facturas FROM ventas; GRANT UPDATE(state) ON facturas TO ventas; COMMIT; Consola usuario emp1:... UPDATE facturas SET total=100 WHERE... ERROR ORA-01031: insufficient privileges
14 Ejemplo (4) create role conectarse; grant connect,resource to conectarse; grant conectarse to scott;
15 Roles SYSDBA y SYSOPER SYSDBA: Usualmente asignado a las cuentas DBA. SYSOPER: Generalmente dado a las cuentas de los operadores de la base de datos.
16 Rol SYSOPER SYSOPER: Un usuario con este privilegio puede: STARTUP, SHUTDOWN. ALTER DATABASE OPEN MOUNT. ALTER DATABASE BACKUP CONTROLFILE. RECOVER DATABASE. ALTER DATABASE ARCHIVELOG.
17 Rol SYSDBA SYSDBA: Un usuario con este privilegio puede: Recibir todos los privilegios de SYSOPER. CREATE DATABASE. ALTER DATABASE [BEGIN END] BACKUP. RESTRICTED SESSION. RECOVER DATABASE.
