0

セキュリティ業務に(コードで)アクセスしたいのですが、どこに保存されているのか(どのテーブルに)わかりませんか?

特権はSecurityTaskに保存されますが、AX2012のどこに職務が保存されているかを知る必要があります。

ありがとうございました。

4

2 に答える 2

1

ここで見つけました:http://arsalanax.blogspot.be/2012/02/role-based-security-in-ax.html

ロールはSecurityRoleに保存されます

SecurityUserRoleでのユーザーからロールへのマッピング

SecurityTaskに保存されている職務と特権

特権への義務のマッピングはSecuritySubTaskに保存されます

ロールからデューティへのマッピングはSecurityRoleTaskGrantに保存されます

UPDATE(クエリが追加されました)

SecurityTaskEntryPoint  taskEntryPoint;
SecurityRole            role;
SecurityRoleTaskGrant   taskGrant;
SecuritySubTask         subTask;
SecurityTask            privilege;
str privName;
str dutyName;
str entrName;
str accessLevel;
;

while select taskEntryPoint
join subTask
    where subTask.SecuritySubTask == taskEntryPoint.SecurityTask
join taskGrant
    where taskGrant.SecurityTask == subTask.SecurityTask
join role
    where role.RecId == taskGrant.SecurityRole
    &&  role.AotName like 'Sales*'
    //|| role.AotName like 'System*'
{
     if (subTask.RecId)
    {
        switch (taskEntryPoint.PermissionGroup)
        {
            case AccessRight::View:
                accessLevel = "R";
                break;
            case AccessRight::Edit:
                accessLevel = "U";
                break;
            case AccessRight::Add:
                accessLevel = "C";
                break;
            case AccessRight::Delete:
                accessLevel = "D";
                break;
            default:
                accessLevel = "";
                break;
        }
    }

    select privilege
        where privilege.RecId == taskGrant.SecurityTask
        && SecurityTaskType::Duty == privilege.Type;
    dutyName = privilege.AotName;

    select privilege
        where privilege.RecId == subTask.SecuritySubTask
        && SecurityTaskType::Privilege == privilege.Type;
    privName = privilege.AotName;

    info(strFmt("EP: %1, Pr: '%2', Du: %3, Ro: %4, Ac: %5", taskEntryPoint.EntryPoint, privName, dutyName, role.AotName, accessLevel));
}
于 2012-11-16T08:18:06.860 に答える
1

SecurityTaskセキュリティ義務は、 Typeが1(SecurityTaskType :: Duty)に等しいテーブルにあります。

SecurityTaskセキュリティ特権は、タイプが0に等しいテーブルにあります(SecurityTaskType :: Privilege)

セキュリティプロセスサイクルは、SecurityTaskタイプが2(SecurityTaskType :: ProcessCycle)のテーブルにあります。

これらのオブジェクトはすべてテーブル(またはビュー)にもあります(SysModelElementElementType == 135の職務)。

于 2012-11-16T08:20:54.683 に答える