Salesforce
Apex

[Apex] 権限セットをすべてのユーザに一括で割り当てる

任意の権限セットを、割り当て可能なすべてのユーザに一括で割り当てます。

final String PERMISSION_SET_NAME = '権限セットのAPI参照名';

// 権限セットを取得
PermissionSet ps = [SELECT Id FROM PermissionSet WHERE Name =:PERMISSION_SET_NAME];

// 権限セットを割り当てるユーザを取得
List<User> assigneeUsers = [SELECT Id FROM User WHERE IsActive = true];

List<PermissionSetAssignment> psalist = new List<PermissionSetAssignment>();

for (User u:assigneeUsers) {
  PermissionSetAssignment psa = new PermissionSetAssignment(
      AssigneeId = u.Id,
      PermissionSetId = ps.Id
  );
  psalist.add(psa);
}

Database.insert(psalist, false);

ユーザのライセンス設定によっては、割り当て可能な権限セットが制限され PermissionSetAssignment レコードの作成がエラーになる場合があります。
そのため Database.insert の第二引数に false を指定することで、権限セットの割り当てができないユーザを無視しています。

参考資料