Redwood Documentation

Product Documentation

 

›Privileges

RunMyJobsSecurity

Roles and Users

  • Authorization
  • Partitions
  • Managing Users and Roles

Privileges

  • Privileges
  • Granted System Privileges
  • Object Security
  • Object Privileges
  • Granting and Revoking System Privileges
  • Granting and Revoking Object Privileges
  • System Privileges
  • Privileges
  • System Privileges

Required Privileges

  • Privileges Required for Objects
  • Ad Hoc Alert Sources
  • Alert Source Actions
  • Applications
  • Audit Rules
  • Audit Trail
  • SAP BAE connectors
  • Credential Protocols
  • Credentials
  • Datum Definitions
  • Documents
  • Alert Escalations
  • Event Definitions
  • Export Rule Sets
  • Export Processes
  • Formats
  • Email Alert Gateways
  • Housekeeping Dashbaord
  • Import Rule Definitions
  • Import Rule Sets
  • Import Sources
  • Imports
  • Chains
  • Process Alert Sources
  • Process Definitions
  • Definition Types (JobDefinitionsTypes)
  • Processes
  • Libraries
  • Process Locks
  • Monitoring Dashbaord
  • Monitor Alert Sources
  • Monitor Nodes
  • Operator Messages
  • Oracle Applications Systems
  • OHI Systems
  • Partitions
  • PeopleSoft Systems
  • Period Functions
  • Process Monitor Definitions
  • Process Monitors
  • Process Server Alert Sources
  • Process Servers
  • Query Filters
  • Queue Alert Source
  • Queues
  • R2W Catalogs
  • Registry Entries
  • Remote Systems
  • Reports
  • Resources
  • Roles
  • SAP Systems
  • Services
  • Shell
  • Subject Role Grant Expanded
  • Subjects
  • Submit Forms
  • Submit Frames
  • Table Definitions
  • Tables
  • Tabs and Links
  • Time Windows
  • Time Zones
  • Triggers
  • Users
  • User Messages
  • Visualization Alerts
  • Visualization Process Server Queues
← Managing Users and RolesGranted System Privileges →

Privileges

There are two types of privileges, object privileges and system privileges. Object privileges can be granted for a specific object. System privileges can be granted for object types in the entire system or in a partition and allow you to limit the privilege to objects in a particular partition.

Object Privileges

Object privileges always relate to a specific object and allow the grantee a specific right on the object. A View privilege on the RS_PrintStatements process definition, for example, is only valid for that process definition. If the user has no other process definition-related system privileges and no other object privileges on process definitions, the only process definition the grantee can view, or access, is RS_PrintStatements.

Object privileges cannot be granted directly, you grant ranks of privileges. For example, the Edit rank contains both View and Edit privileges, this prevents human error, as you need to see an object before you can edit it. Furthermore, privileges can be granted as Access and Admin, when you grant a privilege as Admin, the grantee can grant the privilege to other users.

System Privileges

System privileges are granted on two levels, per partition or system wide. If you are using multiple partitions, you can restrict a system privilege to one partition.

The EventDefinition.Raise system privilege, for example, allows the grantee to raise all events he can view, combined with the EventDefinition.View he can access all events in a partition or across the entire system.

The default roles cannot be edited, but roles you created in external authentication systems are editable in Redwood Server provided you have the necessary security module, please check your license if you are unsure. The default permissions granted to built-in roles are listed in the Granted System Privileges section.

Global Privileges

The following global privileges can be used to restrict access to a feature-set:

Global Privilege NameDescriptionActivated
App_AdministratorRestricts access to the signed apllication installer.false
ChangeOwnerRestricts access to changing an owner using setOwner operation.true
Configure_PlatformRestricts access to change platform settings. These settings usually also require access to the underlying application server or operating system.true
Configure_SchedulerRestricts access to change system-level scheduler settings.true
Default_Navigation_BarRestricts access to the default navigation bar.false
Externally_Available_CredentialRestricts access to the 'Externally Modified' attribute of Credentials.false
Job_Definition_ParametersRestricts access to process definition parameters.false
License_ManagementRestricts access to license management.true
ObjectSearchRestricts access to Object Search.true
PLSQL_SetAnyUserRestricts impersonating other users with jcs.setuser/jcs.use_known_password in the PL/SQL API.true
Portal_AdministrationRestricts administrative access to the support portal.false
Redwood_ScriptRestricts access to RedwoodScript.false
Support_Files_GetRestricts access to the 'Get Support Files' action on a process or process server.false
System_Dynamic_TraceRestricts submit privileges on the System_DynamicTrace definition.false
System_ShellRestricts access to the web-based shelltrue
System_SupportRestricts access to the support utilities.true
User_AdministrationRestricts access to user management.true
User_VoiceResticts access to user voice.false
note

Deactivated global privileges must be activated before they have any effect. Note that as soon as you activate the privileges, users who do not have these privileges granted to any of their roles will not be able to use the affected feature.

The following RedwoodScript code illustrates activating the Default_Navigation_Bar global privilege:

{
  GlobalPrivilege priv = jcsSession.getGlobalPrivilegeByName(GlobalPrivilege.PRIVILEGE_DEFAULT_NAVIGATION_BAR);
  priv.setActivated(true);
  jcsSession.persist();
}

Listing Privileges for a User

The following code prints all the privileges granted to a specific user, either directly or via any of his roles:

Note that the privileges are not sorted and privileges will be printed multiple times if the privilege was granted to more than one of the subjects (user and/or roles).

{
  String username = "Administrator";
  Subject user = jcsSession.getSubjectByTypeName(SubjectType.User, username);
  if (user != null)
  {
    jcsOut.println("#############################################################################");
    jcsOut.println(username);
    jcsOut.println("#############################################################################");
    jcsOut.println("-Global Grants");
    for (SubjectGlobalPrivilegeGrant sgpg: user.getAssignedSubjectGlobalPrivilegeGrants())
    {
      jcsOut.println("---"+sgpg.getGrantedGlobalPrivilege().getName());
    }
    jcsOut.println("-Object Type Grants");

    for (SubjectObjectTypePrivilegeGrant sotpg: user.getAssignedSubjectObjectTypePrivilegeGrants())
    {
      jcsOut.println("---"+sotpg.getObjectDefinition().getObjectName()+" at rank "+sotpg.getGrantedRank()+" at level "+sotpg.getLevel().toString());
    }
    jcsOut.println("-Direct Object Grants");

    for (SubjectObjectPrivilegeGrant sopg: user.getAssignedSubjectObjectPrivilegeGrants())
    {
      String rank = sopg.getGrantedRank().getName();
      SchedulerEntity se = sopg.getSchedulerEntity();
      String bk = "";
      if (se instanceof BusinessKeyObject)
      {
        BusinessKeyObject bkObject = (BusinessKeyObject) se;
        bk = bkObject.getBusinessKey().toString();
      }
      else
      {
        bk = se.getErrorNameEN();
      }
      //all users have access to their personal registry hive
      if(bk.indexOf("user."+username) < 0)
      {
        jcsOut.println("---"+bk+" with rank "+ rank);
      }
    }

    //Get Role Grants and their privileges
    for (SubjectRoleGrant rGrant: user.getAssignedSubjectRoleGrants())
    {
      Subject role = rGrant.getGrantedSubject();
      jcsOut.println("--#############################################################################");
      jcsOut.println("--"+role.getName());
      jcsOut.println("--#############################################################################");
      jcsOut.println("---Global Grants");
      for (SubjectGlobalPrivilegeGrant sgpg: role.getAssignedSubjectGlobalPrivilegeGrants())
      {
        jcsOut.println("-----"+sgpg.getGrantedGlobalPrivilege().getName());
      }
      jcsOut.println("---Object Type Grants");

      for (SubjectObjectTypePrivilegeGrant sotpg: role.getAssignedSubjectObjectTypePrivilegeGrants())
      {
        jcsOut.println("-----"+sotpg.getObjectDefinition().getObjectName()+" at rank "+sotpg.getGrantedRank()+" at level "+sotpg.getLevel().toString());
      }
      jcsOut.println("---Direct Object Grants");

      for (SubjectObjectPrivilegeGrant sopg: role.getAssignedSubjectObjectPrivilegeGrants())
      {
        String rank = sopg.getGrantedRank().getName();
        String bk = "";
        SchedulerEntity se = sopg.getSchedulerEntity();
        if (se instanceof BusinessKeyObject)
        {
          BusinessKeyObject bkObject = (BusinessKeyObject) se;
          bk = bkObject.getBusinessKey().toString();
        }
        else
        {
          bk = se.getErrorNameEN();
        }
        jcsOut.println("-----"+bk+" with rank "+ rank);
      }
    }
  }
  else
  {
    throw new RuntimeException("User " + username + " does not exist.");
  }
}

See Also

  • System Privileges
  • Granting and Revoking System Privileges
  • Granting and Revoking Object Privileges
  • Privileges Required to use Objects
← Managing Users and RolesGranted System Privileges →
  • Object Privileges
  • System Privileges
  • Global Privileges
  • Listing Privileges for a User
  • See Also
Docs
Getting StartedInstallationFinance InstallationConcepts
TroubleshootingArchiving
Learn and Connect
Support Portal
BlogEventsResources
ISO/ IEC 27001 Information Security Management
Automate to be human

2023 All Rights Reserved |

Terms of Service | Policies | Cookies | Glossary | Third-party Software | Contact | Copyright | Impressum |