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 permissions
Example 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: