Diferencia entre revisiones de «PERMISOS»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
 
(No se muestran 20 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
== Descripción ==
==Descripción==


Los permisos que los usuarios tienen sobre los objetos de la base de datos se definen en el sistema, pero la administración de la seguridad se hace directamente usando funcionalidad de la base de datos. Es decir, los permisos se definen en el sistema para simplificar la definición, pero usan exclusivamente las opciones de seguridad de la BD.
Los usuarios del sistema solo pueden acceder a aquellos objetos de la base de datos sobre los que tienen permisos de acceso. Esos permisos se definen en el sistema, pero la administración de la seguridad la hace directamente la base de datos. Es decir, los permisos se definen en el sistema para simplificar la definición, pero usan exclusivamente las opciones de seguridad de la BD.


[[Archivo:20241206 1545 PERMISOS.png|miniaturadeimagen|izquierda|Diagrama de permisos]]
[[Archivo:20241206 1545 PERMISOS.png|miniaturadeimagen|izquierda|Diagrama de permisos]]


Para simplificar, los permisos se asignan a roles (representados por la tabla descripta en este artículo), y los roles se asignan a los usuarios adquiriendo éstos los permisos asignados al rol. Usando el esquema de la base de datos no importa desde que aplicación se acceda a la base de datos, siempre se van a aplicar los permisos que el usuario tenga.
Para simplificar, los permisos sobre los objetos se asignan a roles (representados por la tabla descripta en este artículo), y los roles se asignan a los usuarios adquiriendo éstos los permisos asignados al rol. Usando el esquema de la base de datos no importa desde que aplicación se acceda a la base de datos, siempre se van a aplicar los permisos que el usuario tenga.


=== Estructura ===
<blockquote>
El esquema documentado reemplaza a '''prxrol''', '''prxrol_permisos''' y '''prxrol_permisosdetalle''' que al 07/12/2024 están en uso pero pronto dejarán de estarlo siendo reemplazadas por los permisos descriptos en esta documentación.
</blockquote>


Para aplicar la seguridad
La tabla '''USUARIOPERFIL''' (Usuarios, perfiles) permite definir los perfiles de acceso.


==Estructura==


Para aplicar este esquema de seguridad deben seguirse los siguientes pasos:
*Definir por lo menos un perfil usando [[PERMISOS|PERMISOS]].
*Al perfil deben asociarse los permisos a los objetos de la base de datos en [[PERMISOS/OBJETOS|PERMISOS/OBJETOS]], que es detalle de la anterior.
*Cada perfil debe ser asociado a los usuarios en [[USUARIOS/PERMISOS|USUARIOS/PERMISOS]].
La base de datos mantendrá los permisos actualizados con cada cambio que se realice en cualquier de estas tablas.


[[Category:MANUAL/USUARIO]]
[[Category:MANUAL/USUARIO]]
[[Category:SYS OBJETOS]]
<!--[[Category:SYS OBJETOS]]-->
[[Category:PERMISOS]]
[[Category:PERMISOS]]
== [[QUEESESTO/IDENTIDAD|Identidad]] ==
== [[QUEESESTO/IDENTIDAD|Identidad]] ==
* Tabla: '''USUARIOPERFIL'''
* Tabla: '''USUARIOPERFIL'''
Línea 24: Línea 35:
* La categoría es [[:Category:PERMISOS|PERMISOS]]
* La categoría es [[:Category:PERMISOS|PERMISOS]]
== [[QUEESESTO/LISTADECAMPOS|Lista de campos]] ==
== [[QUEESESTO/LISTADECAMPOS|Lista de campos]] ==
=== Observaciones sobre los campos ===
{| class="wikitable"
|-
! Columna !! Campo físico !! Campo lógico !! Atributo !! Descripción !! Etiquetas !! Definición !! Observaciones
|-
|1||FCODIGO||Codigo||'''[[VARCHAR(64)|VARCHAR(64)]]'''||Caracteres de longitud variable hasta 64 caracter/es||KEY,REQ,VIS,INS||[[PERMISOS|'''USUARIOPERFIL'''||Campo clave.]]
|-
|2||FDESCRIPCION||Descripcion||'''[[VARCHAR(128)|VARCHAR(128)]]'''||Caracteres de longitud variable hasta 128 caracter/es||REQ,VIS,INS,UPD||[[PERMISOS|'''USUARIOPERFIL'''||Descripción del perfil.]]
|-
|3||FPUBLICO||Público||'''[[BIT|BIT]]'''||Campo lógico, admite 1, 0 y NULL||REQ,VIS,INS,UPD||[[PERMISOS|'''USUARIOPERFIL'''||Marcar para indicar que el perfil es público y automáticamente se asigna a todos los usuarios.]]
|-
|4||FACTIVO||Activo||'''[[BIT|BIT]]'''||Campo lógico, admite 1, 0 y NULL||VIS,INS,UPD||[[PERMISOS|'''USUARIOPERFIL'''||Marcar únicamente cuando el rol se encuentre activo. Este campo no tiene efecto sobre los triggers mencionados más abajo, su efecto es interno. Si el registro existe entonces existe el permiso en la BD. Si el registro se elimina entonces el permiso se eliminará de la BD.]]
|-
|5||FIDNUM||FIDNUM||'''[[VARCHAR(16)|VARCHAR(16)]]'''||Caracteres de longitud variable hasta 16 caracter/es||INS||[[PERMISOS|'''USUARIOPERFIL'''||OBSOLETO.]]
|-
|6||FORDEN||Orden||'''[[INT|INT]]'''||Entero.||VIS,INS,UPD||[[PERMISOS|'''USUARIOPERFIL'''||OBSOLETO.]]
|-
|}
 
== Observaciones adicionales sobre estos campos ==
 
== Relaciones ==
== Relaciones ==
== Triggers ==
== Triggers ==
Esta tabla usa dos triggers:
* '''USUARIOPERFIL_TR_UPDATE''' se ejecuta cuando insertamos o actualizamos los datos de esta tabla creando el rol de la base de datos si es que aún no ha sido creado.
* '''USUARIOPERFIL_TR_DELETE''' se ejecuta cuando eliminamos un registro de esta tabla eliminando el rol de la base de datos.

Revisión actual - 23:52 31 dic 2024

Descripción

Los usuarios del sistema solo pueden acceder a aquellos objetos de la base de datos sobre los que tienen permisos de acceso. Esos permisos se definen en el sistema, pero la administración de la seguridad la hace directamente la base de datos. Es decir, los permisos se definen en el sistema para simplificar la definición, pero usan exclusivamente las opciones de seguridad de la BD.

Diagrama de permisos

Para simplificar, los permisos sobre los objetos se asignan a roles (representados por la tabla descripta en este artículo), y los roles se asignan a los usuarios adquiriendo éstos los permisos asignados al rol. Usando el esquema de la base de datos no importa desde que aplicación se acceda a la base de datos, siempre se van a aplicar los permisos que el usuario tenga.

El esquema documentado reemplaza a prxrol, prxrol_permisos y prxrol_permisosdetalle que al 07/12/2024 están en uso pero pronto dejarán de estarlo siendo reemplazadas por los permisos descriptos en esta documentación.

La tabla USUARIOPERFIL (Usuarios, perfiles) permite definir los perfiles de acceso.

Estructura

Para aplicar este esquema de seguridad deben seguirse los siguientes pasos:

  • Definir por lo menos un perfil usando PERMISOS.
  • Al perfil deben asociarse los permisos a los objetos de la base de datos en PERMISOS/OBJETOS, que es detalle de la anterior.
  • Cada perfil debe ser asociado a los usuarios en USUARIOS/PERMISOS.

La base de datos mantendrá los permisos actualizados con cada cambio que se realice en cualquier de estas tablas.

Identidad

Lista de campos

Columna Campo físico Campo lógico Atributo Descripción Etiquetas Definición Observaciones
1 FCODIGO Codigo VARCHAR(64) Caracteres de longitud variable hasta 64 caracter/es KEY,REQ,VIS,INS USUARIOPERFIL Campo clave.
2 FDESCRIPCION Descripcion VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es REQ,VIS,INS,UPD USUARIOPERFIL Descripción del perfil.
3 FPUBLICO Público BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD USUARIOPERFIL Marcar para indicar que el perfil es público y automáticamente se asigna a todos los usuarios.
4 FACTIVO Activo BIT Campo lógico, admite 1, 0 y NULL VIS,INS,UPD USUARIOPERFIL Marcar únicamente cuando el rol se encuentre activo. Este campo no tiene efecto sobre los triggers mencionados más abajo, su efecto es interno. Si el registro existe entonces existe el permiso en la BD. Si el registro se elimina entonces el permiso se eliminará de la BD.
5 FIDNUM FIDNUM VARCHAR(16) Caracteres de longitud variable hasta 16 caracter/es INS USUARIOPERFIL OBSOLETO.
6 FORDEN Orden INT Entero. VIS,INS,UPD USUARIOPERFIL OBSOLETO.

Observaciones adicionales sobre estos campos

Relaciones

Triggers

Esta tabla usa dos triggers:

  • USUARIOPERFIL_TR_UPDATE se ejecuta cuando insertamos o actualizamos los datos de esta tabla creando el rol de la base de datos si es que aún no ha sido creado.
  • USUARIOPERFIL_TR_DELETE se ejecuta cuando eliminamos un registro de esta tabla eliminando el rol de la base de datos.