web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / Axapta todo es posible / AX2012 R2: Roles de seguridad

AX2012 R2: Roles de seguridad

Ismael Utitiaj Profile Picture Ismael Utitiaj 426

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.

VistaSeguridad.jpg

 

Las vistas que podemos destacar son:

  1. SecurableObject - Información de Nombre de permiso (EntryPoint) y el tipo de objeto.
  2. SecurityTaskEntryPoint - Información del nivel de acceso de los puntos de entrada (EntryPoint).
  3. SecuritySubTask - Información de privilegio atado a los deberes.
  4. SecurityTask - Información de Deberes (campo Type = 1) y privilegios (campo Type = 0).
  5. SecurityRoleTaskGrant - Información del Rol atados a los privilegios.
  6. 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 

VistaCampo.jpg

Los campos agregados son los siguientes:

ResultadoVista.jpg

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

*This post is locked for comments

  • Zoila Goñi Vera Profile Picture Zoila Goñi Vera 170
    Posted at

    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.

  • Ismael Utitiaj Profile Picture Ismael Utitiaj 426
    Posted at

    Espero que sí sea de mucha utilidad, pronto voy a actualizar esa consulta, existe un problema en esas relaciones, el cambio no es mucho.

  • Community Member Profile Picture Community Member
    Posted at

    Gracias por la informacion me ayudara muchismos.

    Saludos,

    Magnolia