Security Permissions (Reference) define access control groups that determine what users can edit in the Designer and execute during runtime. Permission groups provide:
Permissions are assigned to users through group membership, allowing granular control over solution access.
Seven standard groups are configured by default:
| Group | Typical Use | Default Permissions |
|---|---|---|
| Administrator | Full system control | Unrestricted access |
| Guest | Anonymous access | View-only, minimal rights |
| User | Basic authenticated access | Standard operations |
| Engineering | Solution development | Edit modules, test |
| Supervisor | Operations oversight | Monitor, reports, alarms |
| Maintenance | System upkeep | Diagnostics, tag values |
| Operator | Daily operations | Displays, acknowledge alarms |
| Property | Description | Required |
|---|---|---|
| Name | Unique group identifier | Yes |
| Edit | Designer editing permissions | Yes |
| Run | Runtime execution permissions | Yes |
| Level | Hierarchical tier (0-255) | No |
| Category | Group classification | No |
| Description | Documentation text | No |
Controls access to Designer modules:
| Permission | Description | Affects |
|---|---|---|
| Unrestricted | All editing rights | Complete Designer access |
| EditTags | Modify existing tags | UNS tag properties |
| CreateTags | Add new tags | UNS structure |
| Security | User management | Users, permissions, policies |
| Scripts | Code editing | Tasks, classes, expressions |
| Datasets | Database configuration | Queries, tables, connections |
| Displays | Screen development | Pages, popups, symbols |
| Reports | Report design | Forms, WebData |
| Historian | Data logging setup | Tables, triggers |
| Alarms | Alarm configuration | Items, groups, areas |
| Devices | Communication setup | Channels, nodes, points |
| Startup | Runtime configuration | Execution settings |
| Publish | Deploy solutions | Build and distribute |
| Settings | Solution properties | Global configuration |
| Notes | Documentation | Solution notes |
Controls runtime operations:
| Permission | Description | Impact |
|---|---|---|
| Unrestricted | All runtime rights | Complete control |
| Test | Execute test mode | Debug capabilities |
| Startup | Start server modules | Scripts, datasets, devices |
| Shutdown | Stop application | Terminate runtime |
| ClientStart | Start client modules | Displays, local devices |
| ClientShutdown | Stop client | Close displays |
| StartTools | Launch diagnostics | PropertyWatch, TraceWindow |
| ToolsSetValues | Modify via tools | Write tag values |
| CreateUsers | Add runtime users | Dynamic user creation |
| SwitchApplication | Change context | Alt-Tab, taskbar access |
| WebAccess | Web client login | HTML5 display access |
Users inherit combined permissions from all assigned groups:
User: John
Groups: Operator, Maintenance
Result: Union of both group permissionsExample combinations:
csharp
// Current user's groups
string permissions = @Client.Permissions;
// Check specific permission
bool canEdit = @Security.HasPermission("EditDisplays");
bool canShutdown = @Security.HasPermission("Shutdown");
// Check multiple permissions
bool isAdmin = @Client.Permissions.Contains("Administrator");csharp
// Show/hide based on permissions
if (@Security.HasPermission("StartTools"))
{
btnDiagnostics.Visible = true;
}
// Enable/disable functions
btnShutdown.Enabled = @Security.HasPermission("Shutdown");Hierarchical access control using Level property:
| Level Range | Typical Use |
|---|---|
| 0-25 | View only |
| 26-50 | Basic operator |
| 51-75 | Advanced operator |
| 76-100 | Supervisor |
| 101-150 | Engineer |
| 151-200 | Manager |
| 201-255 | Administrator |
Usage:
csharp
// Check user level
if (@Client.Level >= 100)
{
// Show supervisor features
}Cannot edit module:
Runtime function disabled:
Permission not working: