0% encontró este documento útil (0 votos)
10 vistas8 páginas

TI3022 - U3 - S15 - Privilegios de Sistema y de Objeto

El documento aborda la gestión de privilegios en bases de datos, diferenciando entre privilegios de sistema y de objeto. Se detalla cómo se asignan y revocan estos privilegios mediante las sentencias SQL GRANT y REVOKE, y se enfatiza su importancia para mantener la seguridad y la integridad de la información. La comprensión de estos conceptos es fundamental para los administradores de bases de datos en entornos Oracle.

Cargado por

gverdugob
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas8 páginas

TI3022 - U3 - S15 - Privilegios de Sistema y de Objeto

El documento aborda la gestión de privilegios en bases de datos, diferenciando entre privilegios de sistema y de objeto. Se detalla cómo se asignan y revocan estos privilegios mediante las sentencias SQL GRANT y REVOKE, y se enfatiza su importancia para mantener la seguridad y la integridad de la información. La comprensión de estos conceptos es fundamental para los administradores de bases de datos en entornos Oracle.

Cargado por

gverdugob
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Cápsula

Privilegios de sistema y de objeto

Introducción
En el fascinante ámbito de las bases de datos, la comprensión profunda de los privilegios
de sistema y de objeto es esencial para cualquier profesional de la gestión de datos. Esta
cápsula explora cómo los sistemas de gestión de bases de datos asignan y controlan los
privilegios, otorgando autoridad sobre el sistema o sobre objetos específicos a usuarios y
roles. Desde el acceso a tablas hasta la ejecución de procedimientos almacenados, este
conocimiento crítico permite a los administradores de bases de datos mantener la
integridad, confidencialidad y disponibilidad de la información, formando la columna
vertebral de la seguridad en entornos de datos dinámicos y complejos.
Cápsula: Privilegios de sistema y de objeto

Tema 1. Gestión y asignación de privilegios


En esta sección se describen los fundamentos de la gestión de privilegios, es decir su
asignación con la sentencia GRANT o su revocación con la sentencia REVOKE. También se
abordan las diferencias entre los privilegios de sistema y los privilegios de objeto,
profundizando en las características de éstos últimos.

1.1. Introducción a la gestión de privilegios


Un privilegio es un derecho para ejecutar un tipo concreto de sentencia SQL o para
acceder a un objeto de otro usuario. Oracle Database le permite controlar lo que los
usuarios pueden o no pueden hacer en la base de datos.

Los privilegios se dividen en dos categorías, como se observa en la Figura 1:

Figura 1. Categorías de privilegios y ejemplo

• Privilegios del sistema: cada privilegio del sistema permite a un usuario realizar una
operación de base de datos concreta o una clase de operaciones de base de datos.
Por ejemplo, el privilegio para crear tablespaces es un privilegio del sistema. Estos
privilegios los puede otorgar el administrador o alguien a quien se le haya
proporcionado explícitamente permiso para administrar el privilegio. Existen más
de 170 privilegios del sistema distintos. Muchos de ellos contienen la cláusula ANY.

• Privilegios de objeto: los privilegios de objeto permiten a un usuario realizar una


acción concreta en un objeto determinado, como una tabla, una vista, una
secuencia, un procedimiento, una función o un paquete. Sin el permiso concreto,
los usuarios sólo pueden acceder a sus propios objetos. Estos privilegios los puede
otorgar el propietario de un objeto, el administrador o alguien al que se le haya
proporcionado explícitamente permiso para otorgar privilegios sobre el objeto.

2
Cápsula: Privilegios de sistema y de objeto

1.2. Privilegios de sistema


La sintaxis SQL para otorgar privilegios del sistema es la siguiente:

GRANT <system_priv> TO <grantee_clause> [WITH ADMIN OPTION];

En la sintaxis:

• system_priv es el privilegio de sistema que se desea otorgar. También se


pueden otorgar más de un privilegio a la vez separados por coma.

• grantee_clause es el nombre de usuario o rol al que se le desea otorgar el


privilegio de sistema.

• WITH ADMIN OPTION. Con la opción ADMIN el usuario podrá administrar el


privilegio del sistema y otorgarlo a otros usuarios.

Considere detenidamente los requisitos de seguridad antes de otorgar permisos del


sistema. Otorgar un privilegio con la cláusula ANY significa que el privilegio traspasa las
líneas del esquema. Por ejemplo, si tiene el privilegio CREATE TABLE, puede crear una tabla,
pero sólo en su propio esquema. El privilegio SELECT ANY TABLE le permite realizar
selecciones en tablas propiedad de otros usuarios. El usuario SYS y los usuarios con el rol
DBA tienen otorgados todos los privilegios ANY; por lo tanto, pueden realizar cualquier
acción en cualquier objeto de datos.

Algunos privilegios del sistema se suelen otorgar sólo a los administradores:

• RESTRICTED SESSION: este privilegio le permite conectarse incluso aunque la base


de datos se haya abierto en modo restringido.

• SYSDBA y SYSOPER: estos privilegios le permiten cerrar, iniciar y realizar una


operación de recuperación y demás tareas administrativas en la base de datos.
SYSOPER permite a un usuario realizar tareas operativas básicas, pero sin la
capacidad de ver los datos de usuarios. El privilegio del sistema SYSDBA autoriza
además la recuperación incompleta y la supresión de una base de datos. De hecho,
el privilegio del sistema SYSDBA permite a un usuario conectarse como usuario SYS.

• DROP ANY objeto: el privilegio DROP ANY le permite suprimir objetos propiedad de
otros usuarios de esquema.

• CREATE, MANAGE, DROP y ALTER TABLESPACE: estos privilegios permiten la


administración de tablespaces, incluida la creación, el borrado y el cambio de sus
atributos.

3
Cápsula: Privilegios de sistema y de objeto

• CREATE LIBRARY: Oracle Database permite a los desarrolladores crear y llamar a


código externo (por ejemplo, una biblioteca C) desde PL/SQL. La biblioteca debe
recibir el nombre de un objeto LIBRARY de la base de datos. El privilegio CREATE
LIBRARY permite al usuario crear una biblioteca de código arbitrario ejecutable
desde PL/SQL.

• CREATE ANY DIRECTORY: como medida de seguridad, el directorio del sistema


operativo en el que reside el código debe estar enlazado a un objeto de directorio
Oracle virtual. Con el privilegio CREATE ANY DIRECTORY, podría llamar a objetos de
código no seguros. El privilegio CREATE ANY DIRECTORY permite a un usuario crear
un objeto de directorio (con acceso de lectura y escritura) en cualquier directorio
al que el propietario del software de Oracle pueda acceder. Esto significa que el
usuario puede acceder a procedimientos externos en esos directorios. El usuario
puede intentar leer y escribir cada archivo de base de datos directamente, ya sean
archivos de datos, redo logs y logs de auditoría. Asegúrese de que su organización
posee una estrategia de seguridad que evita que se haga un uso incorrecto de
privilegios potentes como éste.

• GRANT ANY OBJECT PRIVILEGE: este privilegio le permite otorgar permisos sobre
objetos que no le pertenecen.

• ALTER DATABASE y ALTER SYSTEM: estos privilegios son muy potentes y le permiten
modificar la base de datos y la instancia de Oracle (por ejemplo, cambiar el nombre
de un archivo de datos o vaciar la caché de buffers).

Los privilegios del sistema que se han otorgado directamente con un comando GRANT se
pueden revocar mediante la sentencia SQL REVOKE. Los usuarios con el privilegio del
sistema ADMIN OPTION pueden revocar el privilegio de cualquier otro usuario de la base
de datos. El usuario que lleva a cabo la revocación no tiene que ser el mismo que
inicialmente otorgó el privilegio. No hay ningún efecto en cascada cuando se revoca un
privilegio del sistema, independientemente de si se le aplica el privilegio ADMIN OPTION.

La sintaxis SQL para revocar privilegios del sistema es la siguiente:

REVOKE <system_priv> FROM <grantee_clause>;

En la Figura 2 se ilustra la siguiente situación:

1. El DBA otorga el privilegio del sistema CREATE TABLE a Joe con ADMIN OPTION.

2. Joe crea una tabla.

3. Joe otorga el privilegio del sistema CREATE TABLE a Emily.

4
Cápsula: Privilegios de sistema y de objeto

4. Emily crea una tabla.

5. El DBA revoca el privilegio del sistema CREATE TABLE a Joe.

Figura 2. Revocación de privilegios de sistema con ADMIN OPTION

La tabla de Joe aún existe, pero Joe no puede crear nuevas tablas. La tabla de Emily aún
existe y todavía posee el privilegio del sistema CREATE TABLE.

1.3. Privilegios de objeto


La sintaxis SQL para otorgar privilegios de objeto es la siguiente:

GRANT <object_priv> ON <object> TO <grantee_clause>


[WITH GRANT OPTION];

Los privilegios de objeto disponibles dependen del tipo de objeto. La Tabla 1 muestra los
privilegios de objetos más comunes y a cuáles objetos aplica.

PRIVILEGIO TABLA VISTA SECUENCIA

ALTER X X

DELETE X X

INDEX X

5
Cápsula: Privilegios de sistema y de objeto

PRIVILEGIO TABLA VISTA SECUENCIA

INSERT X X

READ X X

SELECT X X X

UPDATE X X

Tabla 1. Privilegios de objeto típicos.

En el siguiente ejemplo se le otorgan privilegios para consultar y modificar datos sobre la


vista EMP_VIEW al usuario TOM:

GRANT SELECT, UPDATE ON emp_view TO tom;

En el siguiente ejemplo se le otorgan todos privilegios sobre la tabla EMPLOYEES al usuario


TOM con la opción GRANT. Esto permite que el usuario TOM pueda otorgar el privilegio a
otros usuarios:

GRANT ALL ON employees TO tom WITH GRANT OPTION;

Se pueden observar efectos en cascada cuando se revoca un privilegio del sistema


relacionado con una operación de lenguaje de manipulación de datos (DML). Por ejemplo,
si se otorga el privilegio SELECT ANY TABLE a un usuario y si ese usuario ha creado
procedimientos que utilizan la tabla, todos los procedimientos contenidos en el esquema
del usuario se tienen que recompilar antes de que se puedan utilizar de nuevo.

La revocación de privilegios de objeto también produce efectos en cascada mediante


GRANT OPTION. Como usuario, sólo puede revocar los privilegios que haya otorgado. Por
ejemplo, Bob no puede revocar el privilegio de objeto que Joe ha otorgado a Emily. Sólo el
usuario con privilegios o un usuario con el privilegio denominado GRANT ANY OBJECT
PRIVILEGE puede revocar privilegios de objeto.

En la Figura 3 se ilustra la siguiente situación:

1. A Joe se le otorga el privilegio de objeto SELECT en EMPLOYEES con GRANT


OPTION.

2. Joe otorga el privilegio SELECT en EMPLOYEES a Emily.

3. A Joe se le revoca el privilegio SELECT. Esta revocación tiene un efecto en cascada


y se aplica también a Emily.

6
Cápsula: Privilegios de sistema y de objeto

Figura 3. Revocación de privilegios de objeto con GRANT OPTION

Para profundizar en este tema:

• Heurtel, O. (2015). Gestión de usuarios y sus permisos en Oracle 12c administración.


Ediciones ENI.

Bibliografía asociada al tema:

• Huey P. (2023). Oracle Database Security Guide, 21c. Managing Security for Oracle
Database Users. Recuperado el 15 de enero de 2024 de
https://docs.oracle.com/en/database/oracle/oracle-database/21/dbseg/managing-
security-for-oracle-database-users.html.

• Huey P. (2023). Oracle Database Security Guide, 21c. Configuring Privilege and Role
Authorization. Recuperado el 15 de enero de 2024 de
https://docs.oracle.com/en/database/oracle/oracle-database/21/dbseg/configuring-
privilege-and-role-authorization.htm.

7
Cápsula: Privilegios de sistema y de objeto

Recursos complementarios
A continuación, encontrarás recursos para complementar lo aprendido sobre la cápsula
Privilegios de sistema y de objeto.

Heurtel, O. (2015). Gestión de usuarios y sus permisos en Oracle 12c administración.


Ediciones ENI.

Referencias bibliográficas
Huey P. (2023). Oracle Database Security Guide, 21c. Managing Security for Oracle
Database Users. Recuperado el 15 de enero de 2024 de
https://docs.oracle.com/en/database/oracle/oracle-database/21/dbseg/managing-
security-for-oracle-database-users.html.

Huey P. (2023). Oracle Database Security Guide, 21c. Configuring Privilege and Role
Authorization. Recuperado el 15 de enero de 2024 de
https://docs.oracle.com/en/database/oracle/oracle-database/21/dbseg/configuring-
privilege-and-role-authorization.htm.

Cierre
En resumen, exploramos los cimientos cruciales de la gestión de privilegios en esta sección,
destacando la asignación mediante GRANT y la revocación mediante REVOKE. El análisis
detallado de los privilegios de sistema y de objeto arrojó luz sobre las diferencias
fundamentales. Los privilegios de sistema establecen el tono para el acceso a nivel global,
mientras que los privilegios de objeto permiten una granularidad más fina al controlar el
acceso a entidades específicas. Esta comprensión esencial proporciona a los profesionales
de bases de datos las herramientas necesarias para configurar un sistema de seguridad
robusto y personalizado, asegurando la integridad y confidencialidad de los datos en
entornos Oracle.

También podría gustarte