AX2012 R2: Roles de seguridad
Dentro de la funcionalidad estándar de Axapta no existe un reporte el cual me pueda listar los Roles de seguridad desde el punto de vista de los puntos de entrada (EntryPoints), de la siguiente forma:
Roles - Deberes - Privilegios - Punto de entrada - Nivel de Acceso.
Como resultado, se va crear un Script en SQL y una Vista en Axapta, los cuales pueden ser utilizados en un Reporte SSRS, formulario, etc.
Investigando sobre este tema pude identificar que existen Vistas donde se presenta la información de los componentes de seguridad que fueron creados.
Dentro del AOT - System Documentation - Tables, podemos encontrar las vistas que nos permitirán realizar la presentación de la información que necesitamos.
Las vistas que podemos destacar son:
- SecurableObject - Información de Nombre de permiso (EntryPoint) y el tipo de objeto.
- SecurityTaskEntryPoint - Información del nivel de acceso de los puntos de entrada (EntryPoint).
- SecuritySubTask - Información de privilegio atado a los deberes.
- SecurityTask - Información de Deberes (campo Type = 1) y privilegios (campo Type = 0).
- SecurityRoleTaskGrant - Información del Rol atados a los privilegios.
- SecurityRole - Roles de seguridad.
Identificando el origen de datos en donde está la información podemos realizar desde AX o directamente en SQL Management un script que permita listar la información.
Script en SQL.
--consulta por union de tablas declare @rol varchar(50) set @rol = 'Director financiero' select roleTable.Name as Descripcion, roleTable.AotName as Rol, (select Name from SECURITYTASK where recid = roleTask.SecurityTask) as Duty, (select Name from SECURITYTASK where recid = subTask.SECURITYSUBTASK)as Privilegio, SecObject.Name as Permiso, SecObject.Type as Tipo, entryPoint.PermissionGroup as NivelAcceso from dbo.SECURABLEOBJECT as SecObject join dbo.SECURITYTASKENTRYPOINT as entryPoint on SecObject.recid = entryPoint.EntryPoint join securitySubtask as subTask on entryPoint.SECURITYTASK = subTask.SECURITYSUBTASK join SECURITYROLETASKGRANT as roleTask on subTask.securityTask = roleTask.SECURITYTASK join SecurityRole as roleTable on roleTask.SECURITYROLE = roleTable.RECID where roleTable.NAME = @rol
Vista en Dynamics AX 2012 R2
Basado en el Scrip SQL se crea la vista
Los campos agregados son los siguientes:
El origen de las tablas para cada campo son:
| Campo | Origen de Datos |
| Name | SecurityRole |
| SecurityTask | SecurityRoleTaskGrant |
| SecuritySubTask | SecuritySubTask |
| permission | SecurableObject |
| Type | SecurableObject |
| PermisionGroup | SecurityTaskEntryPoint |
Ejecución de la vista.
Comments
-
Hola, al final actualizaste la consulta? nos la compartes ? y otra duda has encontrado alguna forma de poder crear nuevos roles, deberes, etc de una manera sencilla? es que es demasiado mmm no dificil sino de mucho proceso y se van cosas .... si usas los duties y privilegios estandar das acceso a cosas que no quieres etc.
saludos y gracias.
-
Espero que sí sea de mucha utilidad, pronto voy a actualizar esa consulta, existe un problema en esas relaciones, el cambio no es mucho.
-

Like
Report
*This post is locked for comments