Configuring WinCC 7.4 SP1 User Administration and Authorizations

David Krause16 min read
HMI / SCADASiemensTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview of WinCC V7.4 SP1 User Administration

SIMATIC WinCC V7.4 SP1 implements role-based access control through a three-tier model: Authorizations (the permission definitions), Users (named operator accounts), and Groups (named bundles of users that share the same authorization set). All three are maintained in the User Administrator editor, which lives in the WinCC Explorer navigation tree and writes its data to the project runtime database. Authorizations in WinCC V7.4 SP1 are addressed by a numeric identifier between 0 and 999; system-defined authorizations occupy the 0–100 range and customer-defined authorizations occupy the 100–999 range. The numeric identifier — not the human-readable name — is what the C and VBS runtime APIs use to gate function calls, which is why a consistent numbering scheme should be agreed upon project-wide before any custom authorizations are created.

When a project is first created in WinCC V7.4 SP1, a single predefined user account named Administrator exists with no password and full system rights. Adding additional operators is a normal, documented procedure; however, projects that were originally commissioned with only the default account, or that have been migrated from a WinCC V7.0 or earlier database, frequently appear to lose the ability to assign granular authorizations. In nearly every case the cause is one of three things: the WinCC installation is missing a service pack update, the local SQL Server instance that hosts the project database has lost the user administration tables, or the user is editing the project on an engineering station whose WinCC version does not match the server. SIMATIC WinCC V7.4 SP1 Update 9 addresses a number of issues in this area and is the minimum recommended patch level for new projects. The Update 9 release can be obtained from Siemens Industry Online Support entry 109762790.

Note: The user database is project-scoped. Two different WinCC V7.4 SP1 projects on the same engineering station maintain independent user lists, password hashes, and authorization tables. Importing users from one project into another requires either the Project Duplicator tool or an explicit re-creation of each account; there is no built-in merge-users wizard.

Authorization Number Space and Predefined Authorizations

The authorization number space in WinCC V7.4 SP1 is fixed at 0–999. Numbers 0–100 are reserved for Siemens-defined authorizations and must not be redefined; numbers 100–999 are available for customer-defined function authorizations. The 0–100 range includes the constants referenced by every standard WinCC picture template and the WebNavigator client, so changing them is treated as a project-destroying modification and is blocked at compile time.

Table 1 — System-defined authorizations in WinCC V7.4 SP1
Auth. No. Name Typical Use
0 No authorization Default for unassigned objects; explicit no-permission state for safety interlock logic.
1 User Administration Allows opening and modifying the User Administrator at runtime.
2 Monitor change Allows toggling picture or monitor assignments in runtime.
3 Operation General operator-input authorization for value entry and button actuation.
4 Configuration Allows online configuration changes (limits, setpoints stored in the project).
5 Process operation Higher-privilege process actuation (start, stop, mode changes).
6 Process monitoring Process supervision and acknowledgement of alarms above operator level.
7 Higher process operation Privileged process commands; typically limited to shift supervisors.
8 Higher process monitoring Privileged process supervision; typically limited to plant management.
9 Report activation Allows manual triggering of reports at runtime.
10 Picture editing Allows modifying graphics at runtime where this feature is licensed.
100 WebNavigator — operator Authorizes a thin-client session to perform operator actions.

For custom function authorizations, the recommended numbering convention is to reserve blocks of numbers for each functional area. For example, in a process line with four packaging machines, allocate 100–199 to machine 1, 200–299 to machine 2, and so on. The numeric ID becomes a hard-coded literal in C and VBS scripts, so well-organized numbering is critical for long-term maintainability.

Prerequisites

Before adding authorizations and users in WinCC V7.4 SP1, verify the following:

  1. The engineering station runs SIMATIC WinCC V7.4 SP1 with Update 9 or later. The Update 9 release is available from Siemens entry 109762790.
  2. The WinCC project opens without database migration warnings. If the project was originally built in WinCC V7.0 or V7.2, allow the migration to complete before configuring user administration.
  3. The local Microsoft SQL Server instance used by WinCC (default instance name WINCC) is running and reachable. WinCC Explorer → Project Properties → Computer shows the active database server.
  4. You are logged in to the engineering station with a Windows account that has local administrator rights; the WinCC User Administrator editor writes to the project database and to %ProgramData%\Siemens\Automation\WinCC\.
  5. For runtime verification, either a redundant engineering station or a WinCC Runtime license on the engineering machine is available.
Warning: Multiple WinCC versions on a single engineering station (for example, V7.0 and V7.4 SP1) are supported by Siemens only when installed on separate Windows user profiles or in separate virtual machines. Mixing versions in the same Windows user profile is known to corrupt the user database and to produce "permission not assigned" symptoms in WinCC V7.4 SP1 even when the editor shows the permissions as set.

Step-by-Step: Creating Custom Function Authorizations

Custom authorizations are the only way to gate application-specific actions such as "Reset maintenance counter for extruder 3" or "Acknowledge line clear condition". Follow this procedure to define them in WinCC V7.4 SP1.

  1. Open WinCC Explorer on the engineering station and load the target project.
  2. In the navigation tree, right-click User Administration and select Open. The User Administrator opens with three tabs: Users, Groups, and Authorizations.
  3. Click the Authorizations tab. The default view shows the Siemens-defined authorizations (0–10 and 100).
  4. Click in the next free row of the Authorization Number column and enter a unique number in the 100–999 range.
  5. In the Authorization Name column, enter a descriptive name. Use a consistent naming convention such as Area01_ResetCounter or Line3_StartSequence.
  6. Press Enter to commit the entry. The authorization is now available for assignment to users and groups.
  7. Repeat for every function authorization your runtime scripts and graphic objects need to check.
  8. Close the User Administrator; the changes are written to the project database immediately.
Best practice: Maintain the authorization list in a separate design document, exported to a CSV file, and include the numeric ID, name, owner, and a one-line description. The same document should record which C and VBS scripts reference each ID; this is the fastest way to audit a project before a major migration.

Step-by-Step: Adding Users and Assigning Authorizations

Once the authorization set is defined, the next step is to create user accounts and to grant authorizations either directly on the user or via group membership. Group membership is preferred for long-term maintainability because a single group change updates every member.

  1. In the User Administrator, click the Users tab.
  2. Click in the first empty row of the User Name column and enter the operator's login name. Login names are case-insensitive in WinCC V7.4 SP1 and may contain letters, digits, the underscore, and the hyphen.
  3. Click the Password column and enter an initial password. The password is stored as a salted hash in the project database; the plain text is not recoverable.
  4. To grant an authorization directly to the user, double-click in the corresponding cell of the authorizations matrix. A check mark indicates the user holds that authorization.
  5. To organize users, switch to the Groups tab and create a group (for example, LineOperator, ShiftSupervisor, Maintenance). For each group, check the authorizations the group should hold.
  6. Back on the Users tab, assign each user to one or more groups. A user's effective authorization set is the union of direct grants and group grants.
  7. Set the Time Zone and Logon Time Limit per user. The logon time limit defines the maximum number of hours a single logon remains valid before re-authentication is required.
  8. Save and close the User Administrator.
Table 2 — Recommended user-group model for a four-role line
Group Typical Members Authorizations Granted (examples)
Operator Production line operators Auth 3 (Operation), Auth 6 (Process monitoring), Auth 9 (Report activation)
ShiftSupervisor Shift leaders Auth 5 (Process operation), Auth 7 (Higher process operation), Auth 9
Maintenance Maintenance technicians Auth 3, Auth 4 (Configuration), Auth 100–199 (machine-specific resets)
Administrator Plant engineers Auth 1 (User Administration), all 100–999 custom auths

Applying Authorizations to Graphics and Faceplates

Authorizations become effective when they are referenced by a runtime object or a script. The most common reference point is the Authorization property of a WinCC graphic object (button, I/O field, slider, faceplate instance).

  1. Open the target picture in Graphics Designer.
  2. Select the object whose operation you want to gate (for example, the Start button).
  3. In the Properties dialog, navigate to Miscellaneous → Authorization.
  4. Enter the numeric authorization ID (for example, 5 for process operation, or 103 for a custom authorization).
  5. Close the Properties dialog. The change is saved with the picture.
  6. At runtime, the button is disabled if the currently logged-on user does not hold authorization 5 (or 103).

For faceplates, the same property exists on the faceplate instance and is exposed as a configurable interface property when the faceplate is placed. The faceplate type can also enforce a minimum authorization at the type level; place a check on the type's Authorization property in the type's own Properties dialog to ensure every instance of the faceplate requires that authorization.

Authorization Checks in C Scripts and VBS

When a script performs an action that is not bound to a single graphic object — for example, a global action that runs once a minute and resets counters — the script must perform its own authorization check. WinCC V7.4 SP1 exposes this through the standard function PWRTCheckPermission() in C and through the VBS object model in VBScript.

C Action — checking a single authorization

// C action in a global or picture script
// Returns TRUE if the current user holds authorization 103.
#include "apdefap.h"

BOOL _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
    #define AUTH_RESET_COUNTER_LINE3  103

    if (PWRTCheckPermission(AUTH_RESET_COUNTER_LINE3))
    {
        // User is authorized — perform the action
        SetTagDWord("Line3.CounterReset", 1);
        return TRUE;
    }
    else
    {
        // Not authorized — log and abort
        printf("Authorization 103 missing for user; counter reset denied.\r\n");
        return FALSE;
    }
}

VBScript — checking authorization and prompting for logon

' VBS action on a button click event in Graphics Designer
Const AUTH_REQ = 5  ' Process operation level

If HMIRuntime.Authorization >= AUTH_REQ Then
    ' User holds at least process-operation authority — proceed
    HMIRuntime.Tags("Line3.StartCommand").Write 1
Else
    ' Insufficient privilege — log denial and prompt for escalation
    HMIRuntime.Trace "Authorization 5 missing; command denied." & vbCrLf
    HMIRuntime.UI.Logon
End If
Compatibility note: The C function PWRTCheckPermission() is part of the WinCC standard function library and is available without any additional include path. The VBS property HMIRuntime.Authorization returns the highest predefined authorization level the current user holds. For custom (101–999) authorizations in VBS, use the runtime function call CheckPermission (introduced in WinCC V7.3, fully supported in V7.4 SP1), or trigger the check from a C action that wraps the C function.

Migrating Legacy Projects With the Default Administrator Only

A common situation is to inherit a project that was commissioned years ago with the default Administrator account and no additional user administration. The following procedure restores a proper user model without requiring a full project re-build.

  1. Open the legacy project on a WinCC V7.4 SP1 engineering station. If a migration dialog appears, accept and let it complete.
  2. Open the User Administrator. The default Administrator account is listed under Users with no password. Do not delete this account; WinCC runtime requires at least one user with Auth 1 (User Administration) to exist.
  3. Create the target group structure (Operator, ShiftSupervisor, Maintenance, Administrator) as described earlier.
  4. Create the target users and assign them to groups. Optionally set an initial password and instruct the operators to change it at first logon.
  5. Set a strong password on the default Administrator account — even if you do not plan to use it for daily operation, an unpassworded administrator is a known audit finding for WinCC V7.4 SP1 projects.
  6. On every picture that gates actions with the Authorization property, verify that the property is set to the correct numeric ID. Pictures created in older projects often have an empty Authorization property, in which case the action is permitted for every logged-on user.
  7. Compile the project and start runtime in simulation mode to verify the new user model before deploying to production.
Common pitfall: If the User Administrator editor opens but the Authorizations tab is read-only or empty, the project database is detached. Stop the WinCC runtime, restart the SQL Server service, and reopen the project. If the problem persists, re-install WinCC V7.4 SP1 Update 9 from Siemens entry 109762790; this resolves the issue in the majority of cases where the editor's data grid appears blank.

Runtime Configuration, Password Policies, and SIMATIC Logon

Beyond the per-user password, WinCC V7.4 SP1 supports a project-wide password policy. In WinCC Explorer, select Project Properties → User Administration to set the minimum password length, the required character classes (upper, lower, digit, special), and the maximum number of failed logon attempts before an account is locked. The default settings are 6 characters minimum and 5 attempts; harden these for any production system exposed to external networks.

For site-wide single sign-on, WinCC V7.4 SP1 can be configured to delegate authentication to SIMATIC Logon, which in turn uses a central Windows Active Directory. When SIMATIC Logon is enabled, the User Administrator maintains the authorization set but the password is verified against Active Directory. This combination is the recommended deployment for plants governed by IEC 62443 or similar industrial cybersecurity frameworks.

Table 3 — Password and lockout policy reference
Setting Default Recommended for production
Minimum length 6 10
Required character classes 1 (any) 3 of 4 (upper, lower, digit or special)
Failed logon lockout 5 attempts 3 attempts
Lockout duration Until admin reset 15 minutes
Password history None Last 5 passwords
Inactivity logout None 15 minutes

Verification and Diagnostics

After configuring the user model, perform the following verification steps before declaring the project ready for production deployment.

  1. Start WinCC Runtime in simulation mode from the engineering station.
  2. Log on as the Operator user. Confirm that operator-level buttons are enabled and that supervisory buttons (for example, the line clear acknowledgement) appear disabled.
  3. Log off, log on as the ShiftSupervisor user. Confirm that the previously disabled buttons are now enabled.
  4. Open the WinCC Diagnostic Window (Alt+Tab from the runtime window) and inspect the User tab. Verify that the active user, group memberships, and effective authorization set match the design document.
  5. Trigger a script that performs an explicit PWRTCheckPermission() call and confirm the expected branch is taken.
  6. Reboot the runtime and re-test. A common symptom of an incomplete configuration is that the first logon after a reboot inherits the previous session's authorization, which indicates the runtime is reading the database from a stale cache.

Troubleshooting Matrix

Table 4 — Common issues and resolutions
Symptom Likely Cause Resolution
User Administrator opens but the Authorizations tab is empty or read-only. SQL Server instance is stopped, or the user database is detached. Start the WINCC SQL Server instance; re-attach the project database from the project folder.
Custom authorization created in the editor does not appear in script checks. Project was not compiled after the authorization was added; the runtime is using the old project file. Right-click the project in WinCC Explorer and select Rebuild All, then restart runtime.
Operator-level button remains enabled for a user that should not have permission. The picture's Authorization property is empty (0) instead of the intended numeric ID. Re-open the picture in Graphics Designer, set the property to the correct ID, and save.
User can log on but is immediately logged off with no error. Group membership was not saved, or the user has no authorization to view the start picture. Open User Administrator, confirm the user is in a group and that the group has Auth 3.
User created in one project is not visible in another project on the same engineering station. User databases are project-scoped by design. Re-create the user in the target project or use the Project Duplicator tool to copy the project including the user database.
PWRTCheckPermission returns FALSE for an authorization the user clearly has. The script is being executed before the user has completed logon (for example, in a startup action). Move the authorization check to a triggered action (button click, tag change) rather than a startup action.
WinCC installation on the engineering station shows V7.4 SP1 but a feature behaves as V7.0. The installation has not been updated to SP1 Update 9; some User Administration fixes ship only in the cumulative update. Install Update 9 from Siemens entry 109762790 and re-verify.

Field-Commissioning Notes

Three caveats drawn from production deployments apply whenever a WinCC V7.4 SP1 user administration is rolled out to an active line:

  • Picture-by-picture audit. Inherited projects routinely have 10–20% of picture objects with an empty Authorization property. A targeted audit using the Cross Reference editor (Tools → Cross Reference, with the Authorization property filter) is the fastest way to identify these and to assign the correct IDs.
  • Group-level vs. user-level grants. Always prefer group-level grants. Direct user-level grants survive user renames and group restructuring badly and are difficult to audit. A direct grant should be used only for a one-off exception that has a documented expiry date.
  • Backup of the project database. WinCC V7.4 SP1 stores the user database in the project's runtime database; the file is not part of the source project archive. After every user administration change, take a backup of the runtime database files (typically under <ProjectName>\<ComputerName>\) in addition to the normal project source backup.

Frequently Asked Questions

Can I add a second administrator to a WinCC V7.4 SP1 project that originally only has the default Administrator account?

Yes. Open the User Administrator, create a new user, and check authorization number 1 (User Administration) on the Authorizations tab for that user. The new user now has the same rights as the default Administrator. Set a strong password on the default Administrator account before production deployment.

What is the difference between authorization 3 (Operation) and authorization 5 (Process operation)?

Authorization 3 is the general input permission used for normal operator actions (setpoint entry, mode selection). Authorization 5 is reserved for higher-impact process commands (start, stop, manual override of interlocks) and is typically assigned to supervisory or maintenance users, not to standard operators.

Why does my custom authorization appear in the User Administrator but PWRTCheckPermission always returns FALSE?

Three causes are most common: the project was not recompiled after the authorization was added, the script is running before the user has logged on, or the numeric ID passed to PWRTCheckPermission does not match the ID shown in the User Administrator. Verify the ID, recompile the project, and move the check to a triggered action such as a button click or a tag change.

Can I copy the user list from one WinCC V7.4 SP1 project to another?

Only by using the Project Duplicator tool, which copies the entire project including the user database. There is no built-in export-users-to-CSV or import-users-from-CSV function. For larger user populations, an external script that issues INSERT statements against the WinCC SQL Server database can be used, but this approach is not officially supported by Siemens.

Which cumulative update is required for the user administration fixes discussed in this article?

SIMATIC WinCC V7.4 SP1 Update 9 is the minimum recommended level. It is available from the Siemens Industry Online Support entry 109762790. Always install the latest available Update for the deployed SP1, as it includes fixes for the user database, the SIMATIC Logon integration, and the WebNavigator client.

Back to blog