Acerca de la aplicación

El contenido del script de esta página es sólo para fines de navegación y no modifica el contenido de ninguna forma.

La aplicación tiene la siguiente finalidad, estructura y convenciones de nomenclatura.

Finalidad de la aplicación

La aplicación está destinada a dos tipos de usuarios en una compañía.

Los usuarios habituales pueden realizar las siguientes tareas:

Los administradores de aplicaciones pueden realizar las siguientes tareas:

Estructura de la aplicación

La aplicación utiliza los siguientes objetos y esquemas de esquema.

Objetos de Esquema de la Aplicación

La aplicación se compone de los siguientes objetos de esquema:

Consulte además:

Esquemas para la aplicación

Por motivos de seguridad, la aplicación utiliza los siguientes cinco esquemas (o usuarios), cada uno de los cuales solo tiene los privilegios que necesita.

Supongamos que, en lugar de los usuarios app_user y app_admin_user, la aplicación solo tenía un esquema que no poseía nada y podía ejecutar tanto paquetes employees_pkg como admin_pkg. El pool de conexiones de este esquema tendría que ser lo suficientemente grande para los usuarios típicos y los administradores de la aplicación. Si hubiera un bug de inyección SQL en el paquete employees_pkg, un usuario típico que aprovechara ese bug podría acceder al paquete admin_pkg.

Supongamos que, en lugar de los esquemas app_data, app_code y app_admin, la aplicación solo tenía un esquema que era propietario de todos los objetos de esquema, incluidos los paquetes. Los paquetes tendrían entonces todos los privilegios en las tablas, lo que sería innecesario e indeseable.

Por ejemplo, supongamos que tiene una tabla de pista de auditoría, AUDIT_TRAIL. Desea que los desarrolladores del paquete employees_pkg puedan escribir en la tabla AUDIT_TRAIL, pero no leerla ni cambiarla. Desea que los desarrolladores del paquete admin_pkg puedan leer la tabla AUDIT_TRAIL y escribir en ella, pero no cambiarla. Si la tabla AUDIT_TRAIL y los paquetes employees_pkg y admin_pkg pertenecen al mismo esquema, los desarrolladores de los dos paquetes tienen todos los privilegios en la tabla AUDIT_TRAIL. Sin embargo, si la tabla AUDIT_TRAIL pertenece al esquema app_data, el paquete employees_pkg pertenece al esquema app_code y el paquete admin_pkg pertenece al esquema app_admin, puede conectarse a la base de datos como esquema app_data y ejecutar los siguientes comandos:

GRANT INSERT ON AUDIT_TRAIL TO app_code;
GRANT INSERT, SELECT ON AUDIT_TRAIL TO app_admin;

Consulte además:

Reglas de nomenclatura en la aplicación

La aplicación utiliza estas convenciones de nomenclatura.

Elemento Nombre
Tabla tabla#
Vista de edición para tabla# tabla
Disparador en la vista de edición tabla

table_{a|b}evento[_fer] donde:

  • a identifica un disparador AFTER.

  • b identifica un disparador BEFORE.

  • fer identifica un disparador FOR EACH ROW.

  • event identifica el evento que dispara el disparador. Por ejemplo: i para INSERT, iu para INSERT o UPDATE, d para DELETE.

La restricción PRIMARY KEY en tabla# tabla_pk
Restricción NOT NULL en tabla#.columna table_column_not_null1
Restricción UNIQUE en table#.column tabla_columna_única1
Restricción CHECK en table#.column table_column_check1
Restricción de referencia en table1#.column a table2#.column tabla1_to_tabla2_fk1
Restricción de referencia en table1#.column1 a table2#.column2 table1_col1atable2_col2_fk1 2
Secuencia para table# tabla_secuencia
Nombre del parámetro p_nombre
Nombre de variable local l_nombre
  1. tabla, tabla1 y tabla2 se abrevian para emp para empleados, departamento para departamentos e historial de trabajos para historial de trabajos. 2 3 4 5

  2. col1 y col2 son abreviaturas de los nombres de columna column1 y column2. Un nombre de restricción no puede tener más de 30 caracteres.