AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 733924
Accepted
JohnLBevan
JohnLBevan
Asked: 2015-11-05 10:02:15 +0800 CST2015-11-05 10:02:15 +0800 CST 2015-11-05 10:02:15 +0800 CST

报告以列出 AX2012 中的角色及其权限

  • 772

在 Dynamics AX 2009 中有一个 OOTB 安全报告,其中列出了每个group权限及其相关权限。

对于 Dynamics AX 2012,我们有角色代替组。在应用程序中可以查看每个角色拥有哪些权限,但似乎没有 OOTB 报告来列出这些信息,以便为审计人员提供他们需要的数据。

我们可以编写自定义代码来为我们提供这些信息,但由于 SOX 需要这样做,因此似乎有一个现有的解决方案。

  • 有人知道这样的报道吗?
  • 如果做不到这一点,是否有一些附加组件可以提供此功能(例如,可下载的工具、作为 XPO 提供的现有解决方案或 Dynamics LCS 中的某些东西)?
  • 或者是否有任何关于如何执行 SOX 审计的指导,可以提出一种更好的方法来满足 SOX 要求而无需此类数据?
sox
  • 1 1 个回答
  • 1056 Views

1 个回答

  • Voted
  1. Best Answer
    JohnLBevan
    2015-11-10T07:05:41+08:002015-11-10T07:05:41+08:00

    我意识到AX2012 还有第二个数据库;即模型。经过一番探索,我发现了一些安全表,并尝试找出它们之间的关系。我无法通过谷歌搜索在这些表格上找到任何文档,因此如果其他人使用此表格,请注意可能存在许多疏忽和问题。

    --use your model database
    use [AxDbName_Model]
    go
    
    --ensure you don't cause locking when running this script
    set transaction isolation level read uncommitted
    go
    
    --I got these IDs by comparing the TypeId fields for results with what I saw in the AOT and guessing on relationships.
    
    declare @SubRoleType table (Id int, SubRoleDesc nvarchar(32))
    insert @SubRoleType (Id, SubRoleDesc)
    values (133, 'Role / SubRole')
    , (134, 'Privilege')
    , (135, 'Duty')
    , (136, 'Process Cycle')
    
    declare @KernelType table (Id int, KernelTypeDesc nvarchar(32))
    insert @KernelType (Id, KernelTypeDesc)
    values (11, 'Class')
    , (44, 'Table')
    , (45, 'ServerMethod')
    
    --here's the actual code to fetch the security model/
    --it could probably be improved to make it hierarchical, but
    --for our company's purposes we don't seem to require that so 
    --I didn't put any time into investigating that route.
    
    ;with permissionsModelCte (ParentId, ItemId, ItemName, ItemTypeId, ItemType, IsEnabled) as 
    (
        --duties & privileges (sub role type describes what type of permission this is; this seems to hold all security related groupings of aot objects)
        select mssr.ROLEHANDLE
        , mssr.RECID
        , mssr.SUBROLENAME
        , mssr.SUBROLETYPE
        , srt.SubRoleDesc
        , mssr.ISENABLED
        from ModelSecuritySubRole mssr 
        left outer join @SubRoleType srt on srt.id = mssr.SUBROLETYPE
    
        union 
    
        --permissions (kernel type defines the related object type; this seems to hold everything in the AOT)
        select msp.OWNERHANDLE
        , msp.RECID
        , msp.OBJECTNAME
        , msp.KERNELTYPE 
        , 'Permission\' + kt.KernelTypeDesc
        , msp.ISENABLED
        from ModelSecurityPermission msp 
        left outer join @KernelType kt on kt.Id = msp.KERNELTYPE 
    )
    select msr.Name
    , pmc.ItemType ChildItemType
    , pmc.ItemName ChildItemName
    , pmc.IsEnabled
    --, pmc.ItemId ChildItemId  --interesting for investigating the script, but causes duplicate results
    , msr.ROLEHANDLE ItemId
    , pmc.ItemTypeId ChildItemTypeId
    --, *
    from ModelSecurityRole msr
    left outer join permissionsModelCte pmc on pmc.ParentId = msr.ROLEHANDLE
    --where msr.Name in ('CustInvoiceAccountsReceivableClerk', 'CCIARCollections') 
    where msr.UTILTYPE = 133 --Roles only
    group by msr.Name
    , msr.ROLEHANDLE 
    , pmc.ItemName 
    --, pmc.ItemId --see select statement's ChildItemId
    , pmc.IsEnabled
    , pmc.ItemType 
    , pmc.ItemTypeId 
    order by msr.Name, pmc.ItemType, pmc.ItemName
    
    go 
    
    • 1

相关问题

  • IT 需要为私营公司的合规性做些什么?[关闭]

  • 为 SOX 等审计环境配置 MySQL 日志记录

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve