Sei sulla pagina 1di 23

13

Control de Acceso de Usuarios

Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Objetivos

Al finalizar esta lección, debería estar capacitado para:


• Crear usuarios
• Crear roles para facilitar la configuración y el
mantenimiento del modelo de seguridad
• Utilizar las sentencias GRANT y REVOKE para otorgar y
revocar privilegios de objeto
• Crear y acceder a enlaces de base de datos

13-2 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Control
Control de
de Acceso
Acceso de
de Usuarios
Usuarios

Administrador
de base
de datos

Nombre de usuario y contraseña


Privilegios

Usuarios

13-3 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Privilegios

• Seguridad de base de datos:


– Seguridad de sistema
– Seguridad de datos
• Privilegios del sistema: Obtención de acceso a la base
de datos
• Privilegios de objeto: Manipulación del contenido de
objetos de base de datos
• Esquemas: Recopilaciones de objetos, como tablas,
vistas y secuencias

13-4 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Privilegios del Sistema

• Hay más de 100 privilegios disponibles.


• El administrador de la base de datos tiene privilegios
del sistema de alto nivel para tareas como:
– Crear nuevos usuarios
– Eliminar usuarios
– Eliminar tablas
– Realizar copias de seguridad de tablas

13-5 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Creación de Usuarios

El DBA crea usuarios utilizando la sentencia CREATE USER.

CREATE USER user


IDENTIFIED BY password;

CREATE
CREATE USER
USER scott
scott
IDENTIFIED
IDENTIFIED BY
BY tiger;
tiger;
User
User created.
created.

13-6 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Privilegios de Usuario del Sistema

• Una vez creado un usuario, el DBA puede otorgarle


privilegios específicos del sistema.
GRANT privilege
GRANT [, privilege...]
privilege [, privilege...]
TO user
TO [, user|
user [, user| role,
role, PUBLIC...];
PUBLIC...];
• Un desarrollador de aplicaciones, por ejemplo, puede
tener los siguientes privilegios del sistema:
– CREATE SESSION
– CREATE TABLE
– CREATE SEQUENCE
– CREATE VIEW
– CREATE PROCEDURE

13-7 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Otorgamiento de Privilegios del Sistema

El DBA puede otorgar a un usuario privilegios específicos


del sistema.
GRANT
GRANT create
create session,
session, create
create table,
table,
create
create sequence,
sequence, create
create view
view
TO
TO scott;
scott;
Grant
Grant succeeded.
succeeded.

13-8 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


¿Qué
¿Qué es
es un
un Rol?
Rol?

Usuarios

Director

Privilegios

Asignación de privilegios Asignación de privilegios


sin un rol con un rol

13-9 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Creación
Creación yy Otorgamiento
Otorgamiento de
de
Privilegios
Privilegios aa un
un Rol
Rol
• Cree un rol.
CREATE
CREATE ROLE
ROLE manager;
manager;
Role
Role created.
created.

• Otorgue privilegios a un rol.


GRANT
GRANT create
create table,
table, create
create view
view
TO
TO manager;
manager;
Grant
Grant succeeded.
succeeded.
• Otorgue un rol a usuarios.
GRANT
GRANT manager
manager TO
TO DEHAAN,
DEHAAN, KOCHHAR;
KOCHHAR;
Grant
Grant succeeded.
succeeded.

13-10 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Cambio de la Contraseña

• El DBA crea la cuenta de usuario e inicializa la


contraseña.
• Puede cambiar la contraseña utilizando la sentencia
ALTER USER.

ALTER USER scott


IDENTIFIED BY lion;
User altered.

13-11 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Privilegios
Privilegios de
de Objeto
Objeto

Privilegio
de Objeto Tabla Vista Secuencia Procedimiento

ALTER — —
DELETE — —
EXECUTE —

INDEX —
INSERT — —

REFERENCES — —

SELECT — — —


UPDATE — —

13-12 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Privilegios de Objeto

• Los privilegios de objeto varían de un objeto a otro.


• Un propietario tiene todos los privilegios sobre el
objeto.
• Un propietario puede otorgar privilegios específicos
sobre su objeto.

GRANT
GRANT object_priv [(columns)]
object_priv [(columns)]
ON
ON object
object
TO
TO {user|role|PUBLIC}
{user|role|PUBLIC}
[WITH
[WITH GRANT
GRANT OPTION];
OPTION];

13-13 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Otorgamiento de Privilegios de Objeto

• Otorgue privilegios de objeto en la tabla EMPLOYEES.


GRANT
GRANT select
select
ON
ON employees
employees
TO
TO sue,
sue, rich;
rich;
Grant
Grant succeeded.
succeeded.

• Otorgue privilegios para actualizar columnas


específicas a usuarios y roles.

GRANT
GRANT update
update (department_name,
(department_name, location_id)
location_id)
ON
ON departments
departments
TO
TO scott,
scott, manager;
manager;
Grant
Grant succeeded.
succeeded.

13-14 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Uso de las Palabras Clave WITH GRANT
OPTION y PUBLIC

• Otorgue a un usuario autoridad para transferir


privilegios.
GRANT
GRANT select,
select, insert
insert
ON
ON departments
departments
TO
TO scott
scott
WITH
WITH GRANT
GRANT OPTION;
OPTION;
Grant
Grant succeeded.
succeeded.
• Permita que todos los usuarios del sistema consulten
datos de la tabla DEPARTMENTS de Alice.
GRANT
GRANT select
select
ON
ON alice.departments
alice.departments
TO
TO PUBLIC;
PUBLIC;
Grant
Grant succeeded.
succeeded.

13-15 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Confirmación
Confirmación de
de Privilegios
Privilegios Otorgados
Otorgados
Vista de Diccionario de Datos Descripción
ROLE_SYS_PRIVS Privilegios del sistema otorgados a roles
ROLE_TAB_PRIVS Privilegios de tabla otorgados a roles
USER_ROLE_PRIVS Roles accesibles para el usuario
USER_TAB_PRIVS_MADE Privilegios de objeto otorgados sobre los
objetos de usuario
USER_TAB_PRIVS_RECD Privilegios de objeto otorgados al usuario
USER_COL_PRIVS_MADE Privilegios de objeto otorgados sobre las
columnas de los objetos de usuario
USER_COL_PRIVS_RECD Privilegios de objeto otorgados al usuario
sobre columnas específicas
USER_SYS_PRIVS Enumera privilegios del sistema
otorgados al usuario.

13-16 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Cómo Revocar Privilegios de Objeto

• Utilice la sentencia REVOKE para revocar privilegios


otorgados a otros usuarios.
• Los privilegios otorgados a otros a través de la cláusula
WITH GRANT OPTION también se revocan.

REVOKE
REVOKE {privilege
{privilege [,
[, privilege...]|ALL}
privilege...]|ALL}
ON
ON object
object
FROM
FROM {user[,
{user[, user...]|role|PUBLIC}
user...]|role|PUBLIC}
[CASCADE
[CASCADE CONSTRAINTS];
CONSTRAINTS];

13-17 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Revocación de Privilegios de Objeto

Como usuario Alice, revoque los privilegios SELECT e


INSERT otorgados al usuario Scott sobre la tabla
DEPARTMENTS.

REVOKE
REVOKE select,
select, insert
insert
ON
ON departments
departments
FROM
FROM scott;
scott;
Revoke
Revoke succeeded.
succeeded.

13-18 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Enlaces de Base de Datos

Una conexión de enlace de base de datos permite que los


usuarios locales accedan a datos de una base de datos
remota.

Local Remota

EMP Tabla

SELECT * FROM HQ_ACME.COM


emp@HQ_ACME.COM; base de datos

13-19 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Enlaces de Base de Datos

• Cree el enlace de bases de datos.


CREATE
CREATE PUBLIC
PUBLIC DATABASE
DATABASE LINK
LINK hq.acme.com
hq.acme.com
USING
USING ’sales’;
’sales’;
Database
Database link
link created.
created.

• Escriba sentencias SQL que utilicen el enlace de base


de datos.

SELECT
SELECT **
FROM
FROM emp@HQ.ACME.COM;
emp@HQ.ACME.COM;

13-20 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Resumen
Resumen

En esta lección, debería haber aprendido conceptos sobre las


sentencias DCL que controlan el acceso a la base de datos y
a objetos de base de datos:
Sentencia Acción
CREATE USER Crea un usuario (normalmente la ejecuta
un DBA).
GRANT Otorga a otros usuarios privilegios para
acceder a los objetos.
CREATE ROLE Crea una recopilación de privilegios
(normalmente la ejecuta un DBA).
ALTER USER Cambia la contraseña de un usuario.
REVOKE Elimina privilegios sobre un objeto de los
usuarios.

13-21 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Visión General de la Práctica 13

Esta práctica cubre los siguientes temas:


• Otorgamiento a otros usuarios privilegios para la tabla
• Modificación de la tabla de otro usuario a través de los
privilegios que se le han otorgado a usted
• Creación de un sinónimo
• Consulta de vistas del diccionario de datos
relacionadas con privilegios

13-22 Copyright © Oracle Corporation, 2001. Todos los Derechos Reservados.


Practice 13
1. What privilege should a user be given to log on to the Oracle Server? Is this a system or an
object privilege?
_____________________________________________________________________
2. What privilege should a user be given to create tables?
_____________________________________________________________________
3. If you create a table, who can pass along privileges to other users on your table?
_____________________________________________________________________
4. You are the DBA. You are creating many users who require the same system privileges.
What should you use to make your job easier?
_____________________________________________________________________
5. What command do you use to change your password?
_____________________________________________________________________

Introduction to Oracle: SQL 13-1