Page 9802 "Permission Sets"
Base Application · System.Security.AccessControl
Across versions
- BC23present
- BC242 procedures removed
- BC25-30unchanged
Neighbourhood 10 connected objects and pages
Base Application · System.Security.AccessControl · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Caption | Permission Sets |
| SourceTable | Permission Set Buffer |
| PageType | List |
| UsageCategory | Lists |
| ApplicationArea | Basic, Suite |
| Permissions | TableData “Permission Set Link” = rd, TableData “Aggregate Permission Set” = rimd |
Fields on this page
Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control’s own, else the bound field’s (marked).
| Group | Control | Shows | ToolTip |
|---|---|---|---|
| Permission Set | Permission Set | Role ID | Specifies the name of the permission set. from the table field |
| Name | Name | Specifies the description of the record. from the table field | |
| Type | Type | Specifies if the permission set is defined by your organization, the base application, or an extension. You can only edit or delete permission sets that you have created. from the table field | |
| Extension Name | App Name | Specifies the name of the extension. from the table field | |
| FactBoxes | Permissions | part Page 9863 “Expanded Permissions Factbox” | — |
| Included Permission Sets | part Page 9849 “Included PermissionSet FactBox” | — | |
| Users | part Page 9876 “Perm. Set Assignments Part” | — |
Actions
| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Permissions | Permissions | View or edit which feature objects users need to access, and set up the related permissions in permission sets that you can assign to the users. | |
| Permission Set by User | View or edit the available permission sets and apply permission sets to existing users. | Page 9816 “Permission Set by User” | |
| Permission Set by Security Group | View or edit the available permission sets and apply permission sets to existing security groups. | Page 9874 “Permission Set By Sec. Group” | |
| Show Permission Conflicts Overview | View the permission sets that provide more permissions than product licenses allow. | Page 5555 “Permission Conflicts Overview” | |
| Show Permission Conflicts | View details about the permission set that provides more permissions than the license allows. | ||
| Security Groups | Security Groups | Set up or modify security groups as a fast way of giving users access to the functionality that is relevant to their work. | Page 9871 “Security Groups” |
| Permissions Overview | Where-Used | View where the selected permission set is used, including which users and security groups have been assigned with it. | |
| Permissions Overview | View an overview of how permissions are distributed across permission sets, users, and security groups. | ||
| Functions | Copy Permission Set | Create a copy of the selected permission set with a name that you specify. | |
| Import Permission Sets | Import a file with permissions. | ||
| Export Permission Sets | Export one or more permission sets to a file. | ||
| Remove Obsolete Permissions | Remove all permissions related to the objects which are obsolete or removed. |
Procedures
GetSelectedRecords(var CurrSelectedRecords: Record "Permission Set Buffer")(internal)
Plus 5 local procedures.
Triggers
OnAfterGetCurrRecord, OnAfterGetRecord, OnDeleteRecord, OnInit, OnInsertRecord, OnModifyRecord, OnNewRecord, OnOpenPage
Relations
- source table Table 9009 “Permission Set Buffer”
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 9001 “Permission Pages Mgt.” (6 calls:
OnDeleteRecord → DisallowEditingPermissionSetsForNonAdminUsers,OnInsertRecord → DisallowEditingPermissionSetsForNonAdminUsers,OnInsertRecord → VerifyPermissionSetRoleID, …) - Codeunit 425 “Data Compression” (3 calls:
ExportMixedPermissionSets → AddEntry,ExportMixedPermissionSets → CreateZipArchive,ExportMixedPermissionSets → SaveZipArchive) - Codeunit 4100 “Temp Blob” (2 calls:
ExportMixedPermissionSets → CreateInStream,ExportMixedPermissionSets → CreateOutStream) - Codeunit 152 “User Permissions” (1 call:
OnInit → CanManageUsersOnTenant) - Codeunit 457 “Environment Information” (1 call:
OnOpenPage → IsSaaS) - Codeunit 9002 “Permission Manager” (1 call:
OnOpenPage → IsIntelligentCloud)
Recent changes
- 2026-09-23 #11561 [Permissions] Fix read-only error in obsolete permission cleanup (main, BC30, fix)
- 2026-07-20 #8947 [Permissions] Add Where-Used and Permissions Overview navigation actions (main, BC30, feature)
Documented on Microsoft Learn
- Define granular permissions
- Manage permissions through user groups (legacy)
- Control Access Using Security Groups
Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "page", object_name: "Permission Sets"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.