BASES DE DATOS I

Anuncio
BASES DE DATOS I
CONTROL DE ACCESO
curso 2008
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
22/10/2008
Bases de Datos I
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 ];
22/10/2008
Bases de Datos I
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;
22/10/2008
Bases de Datos I
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
22/10/2008
Bases de Datos I
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
...
22/10/2008
Bases de Datos I
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]
22/10/2008
Bases de Datos I
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]
22/10/2008
Bases de Datos I
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}
22/10/2008
Bases de Datos I
REVOKE: Eliminación de privilegios (2)
revoke_object_privileges:
{ object_privilege | ALL [PRIVILEGES] }
[( column [, column]... )] ...
ON schema . object
FROM {user | role| PUBLIC} ...
[CASCADE CONSTRAINTS]
22/10/2008
Bases de Datos I
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;
22/10/2008
Bases de Datos I
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
22/10/2008
Bases de Datos I
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
22/10/2008
Bases de Datos I
Ejemplo (4)
create role conectarse;
grant connect,resource to conectarse;
grant conectarse to scott;
22/10/2008
Bases de Datos I
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.
22/10/2008
Bases de Datos I
Rol SYSOPER
SYSOPER:
Un usuario con este privilegio puede:
• STARTUP, SHUTDOWN.
• ALTER DATABASE OPEN|MOUNT.
• ALTER DATABASE BACKUP CONTROLFILE.
• RECOVER DATABASE.
• ALTER DATABASE ARCHIVELOG.
22/10/2008
Bases de Datos I
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.
22/10/2008
Bases de Datos I
Descargar