Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Marketing Cloud | ユーザーロール、権限、ビジネスユニットの割り当て

公開日: Mar 17, 2025
説明

すべてのユーザーとその役割、権限セット、割り当てられたデフォルトのビジネスユニット、アクセスできるビジネスユニットを決定するには、監査が必要になる場合があります。  これは管理者が Automation Studio でスクリプトアクティビティを実行することで実施できます。この処理によりデータがデータエクステンションに書き込まれ、その後データ抽出を使用して取り出すことができます。

解決策
  1. 3 つの標準データ拡張機能を作成します。
  2. 次の項目名とデータ型を使用します。

 

データエクステンション名: USERS_PERMISSIONS

Fieldtype FieldName Text AccountUserID Text Name Text Description Number ID Boolean IsAllowed Boolean IsDenied Boolean IsShareable Text ObjectType DE Name:USERS_ROLES

Fieldtype FieldName Text AccountUserID Text Name Text Description Text CustomerKey Boolean IsSystemDefined Text ObjectID DE Name:USERS_INFORMATION

Fieldtype FieldName Text UserID Text Name Text Email Boolean ActiveFlag Number Delete Date LastSuccessfulLogin Boolean IsAPIUser Text NotificationEmailAddress Text IsLocked Number ID Text CustomerKey Text AccountUserID

3. 次のコードを使用して、Automation Studio で SSJS スクリプトアクティビティを作成します。

<script runat="server" language="javascript">
    Platform.Load("core","1.1");
    var prox = new Script.Util.WSProxy();

try {
    var usersInformationTable = "USERS_INFORMATION";
    var usersRolesTable       = "USERS_ROLES";
    var usersPermissionsTable = "USERS_PERMISSIONS";

    var queryAllAccounts = true;
    var cols = [
        "AccountUserID",
        "ActiveFlag",
        "CustomerKey",
        "Email",
        "ID",
        "LastSuccessfulLogin",
        "ModifiedDate",
        "Name",
        "Roles",
        "UserID",
        "UserPermissions"
    ];

    // WSProxy retrieve
    var res = prox.retrieve("AccountUser", cols/*, filter*/);

    if (res.Status == "OK") {

        var resultUsers = res.Results;
        for (i in resultUsers) {
            var rows = Platform.Function.InsertData(usersInformationTable,
                                                    ["AccountUserID",
                                                     "Name",
                                                     "UserID",
                                                     "Email",
                                                     "NotificationEmailAddress",
                                                     "ActiveFlag",
                                                     "Delete",
                                                     "LastSuccessfulLogin",
                                                     "IsAPIUser",
                                                     "IsLocked",
                                                     "ID",
                                                     "CustomerKey"],
                                                    [resultUsers[i].AccountUserID,
                                                     resultUsers[i].Name,
                                                     resultUsers[i].UserID,
                                                     resultUsers[i].Email,
                                                     resultUsers[i].NotificationEmailAddress,
                                                     resultUsers[i].ActiveFlag,
                                                     resultUsers[i].Delete,
                                                     resultUsers[i].LastSuccessfulLogin,
                                                     resultUsers[i].IsAPIUser,
                                                     resultUsers[i].IsLocked,
                                                     resultUsers[i].ID,
                                                     resultUsers[i].CustomerKey]);

            var userRoles = resultUsers[i].Roles;
            for (j in userRoles) {
                var rows = Platform.Function.InsertData(usersRolesTable,
                                                      ["AccountUserID",
                                                       "Name",
                                                       "Description",
                                                       "CustomerKey",
                                                       "IsSystemDefined",
                                                       "ObjectID"],
                                                      [resultUsers[i].AccountUserID,
                                                       userRoles[j].Name,
                                                       userRoles[j].Description,
                                                       userRoles[j].CustomerKey,
                                                       userRoles[j].IsSystemDefined,
                                                       userRoles[j].ObjectID]);


                var cols_roles = ["Permissions"];
                var filter_roles = {
                        Property:"ObjectID",
                        SimpleOperator: "equals",
                        Value: userRoles[j].ObjectID
                };

                var resRoles = prox.retrieve("Role", cols_roles, filter_roles);

                for (var k=0; k<resRoles.Results.length; k++) {

                    var permissionsArray = resRoles.Results[k].Permissions;

                    for (x in permissionsArray) {
                        var rows = Platform.Function.InsertData(usersPermissionsTable,
                                                          ["AccountUserID",
                                                           "Name",
                                                           "Description",
                                                           "ObjectType",
                                                           "ID",
                                                           "IsAllowed",
                                                           "IsDenied",
                                                           "IsShareable"],
                                                          [resultUsers[i].AccountUserID,
                                                           permissionsArray[x].Name,
                                                           permissionsArray[x].Description,
                                                           permissionsArray[x].ObjectType,
                                                           permissionsArray[x].ID,
                                                           permissionsArray[x].IsAllowed,
                                                           permissionsArray[x].IsDenied,
                                                           permissionsArray[x].IsShareable]);
                    }
                }
            }
        }
    }
} catch (error) {
    Write(Stringify(error));
}
</script>

4.   スクリプトをオートメーションに追加し、[1 回実行] 機能を使用してスクリプトを実行します。

ナレッジ記事番号

004517766

 
読み込み中
Salesforce Help | Article