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 app_user y app_admin_user, la aplicación solo tenía un esquema que no poseía nada y podía ejecutar tanto 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 error de inyección SQL en employees_pkg, un usuario típico que aprovechara ese error podría acceder a admin_pkg.

Supongamos que, en lugar de 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 de employees_pkg puedan escribir en AUDIT_TRAIL, pero no leerlo ni cambiarlo. Desea que los desarrolladores de admin_pkg puedan leer AUDIT_TRAIL y escribir en él, pero no cambiarlo. Si AUDIT_TRAIL, employees_pkg y admin_pkg pertenecen al mismo esquema, los desarrolladores de los dos paquetes tienen todos los privilegios en AUDIT_TRAIL. Sin embargo, si AUDIT_TRAIL pertenece a app_data, employees_pkg pertenece a app_code y admin_pkg pertenece a app_admin, puede conectarse a la base de datos como app_data y hacer lo siguiente:

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_null (nota al pie 1)
Restricción UNIQUE en table#.column table_column_unique (nota al pie 1)
Restricción CHECK en table#.column table_column_check (nota al pie 1)
Restricción de referencia en table1#.column a table2#.column tabla1_to_tabla2_fk (nota al pie 1)
Restricción de referencia en table1#.column1 a table2#.column2 table1_col1totable2_col2_fk (nota al pie 1) (nota al pie 2)
Secuencia para table# tabla_secuencia
Nombre del parámetro p_nombre
Nombre de variable local l_nombre

Nota al pie 1: la tabla, la tabla1 y la tabla2 se abrevian para asignar empleados, departamento para departamentos e historial_trabajo para historial_trabajo.

Nota al pie 2: col1 y col2 son abreviaturas de nombres de columna column1 y column2. El nombre de una restricción no puede tener más de 30 caracteres.