Configuring Privileges and Role Authorization
Giving the same level of access to all targets to all administrators is dangerous. Also, individually granting access to tens, hundreds, or even thousands of targets to every new member of the group is time consuming. With Enterprise Manager's administrator privileges and roles feature, these tasks can be streamlined and can easily scale as the enterprise grows. Authorization controls the access to the secure resources managed by Enterprise Manager via system, target, and object level privileges and roles. This section describes Enterprise Manager's Authorization model including roles and privileges assigned to each user class.
Note:
An administrator without any privileges or assigned targets should not be able to see monitored targets from within Enterprise Manager. When logging in to Enterprise Manager as a new administrator without any roles or privileges assigned, all targets will be displayed (security issue) unless the EXEMPT ACCESS POLICY privilege is revoked for the Enterprise Manager Super Administrator SYSMAN.
The system privilege EXEMPT ACCESS POLICY allows a user to be exempted from all fine-grained access control policies on any SELECT or DML operation (INSERT, UPDATE, and DELETE). This provides ease of use for administrative activities such as installation and import and export of the database through a non-SYS schema.
Also, regardless of the utility or application that is being used, if a user is granted the EXEMPT ACCESS POLICY privilege, then the user is exempt from VPD and Oracle Label Security policy enforcement. That is, the user will not have any VPD or Oracle Label Security policies applied to their data access.
To resolve the issue:
Connect to the Enterprise Manager Repository database as SYS or SYSTEM user and execute the following SQL statement:
SQL> revoke EXEMPT ACCESS POLICY from sysman;
Understanding Users, Privileges, and Roles
When an Enterprise Manager administrator adds a user to the system, the primary consideration must be to understand what does the user need in order to perform his job. Once the job for this new user is defined and understood, appropriate privileges must be assigned to this user and access granted to the required systems required to complete the job.
Privileges are ultimately granted to administrators to enable them to manage targets in Enterprise Manager. While you can grant specific privileges to individual administrators, tracking and granting privileges on many targets across many administrators easily becomes error-prone and an administrative burden in itself. Our recommendation is to define and use roles to manage the granting of privileges to administrators.
A role is a user-defined set of privileges typically containing the set of privileges that you want to grant to a team of users. A role can contain other roles as well. For example, you can create a First Line Support role containing the privileges needed for the administrators to view and manage incidents on targets. Once this role is created, you can grant this role to the appropriate administrators who will manage these incidents as part of their job responsibility. If you need to change the set of privileges for your administrators, for example, add new privileges or remove privileges, then all you need to do is update the role. The updated set of privileges in the role is automatically enabled for the administrators to whom the role has been granted. Likewise if new administrators are added, all you need to do is grant them the appropriate role(s) instead of granting them individual privileges. See Classes of Users for more information.
Using roles is one big step towards managing privileges. However, there is still the challenge of having to keep the role updated with privileges on new targets as they are added to Enterprise Manager.
Classes of Users
Oracle Enterprise Manager supports different classes of Oracle users, depending upon the environment you are managing and the context in which you are using Oracle Enterprise Manager.
The Enterprise Manager administrators you create and manage in the Enterprise Manager console are granted privileges and roles to log in to the Enterprise Manager console and to manage specific target types and to perform specific management tasks. The default super administrator for the Enterprise Manager console is the SYSMAN user, which is a database user associated with the Oracle Management Repository. You define the password for the SYSMAN account during the Enterprise Manager installation procedure.
By restricting access to privileged users and providing tools to secure communications between Oracle Enterprise Manager components, Enterprise Manager protects critical information in the Oracle Management Repository.
The Management Repository contains management data that Enterprise Manager uses to help you monitor the performance and availability of your entire enterprise. This data provides you with information about the types of hardware and software you have deployed, as well as the historical performance and specific characteristics of the applications, databases, applications servers, and other targets that you manage. The Management Repository also contains information about the Enterprise Manager administrators who have the privileges to access the management data.
You can create and manage multiple Enterprise Manager administrator accounts, or EM users, using the EM interface. Each administrator account includes its own login credentials, as well as a set of roles and privileges that are assigned to the account. There are three classes of users:
-
Super Administrator: A powerful EM user with special access privileges to targets and other user accounts within the Enterprise Manager environment. The Super Administrator SYSMAN is created by default when Enterprise Manager is installed. A Super Administrator can:
- Perform the initial setup of Enterprise Manager. For example, defining e-mail configurations and defining global notifications rules.
- Create other administrators.
- Add and view all targets discovered in Enterprise Manager.
- Create Enterprise Manager privileges and roles.
- View all jobs and reports in the system and edit only jobs or reports that it owns.
- View its own Named Credentials (cannot view Named Credentials created by other EM users or the SYSMAN user). For more details on Named Credentials, see Named Credentials.
- Manage jobs and deployment procedures that it owns (cannot manage jobs or deployment procedures created by other users).
Note that secure privileges are not granted to Super Administrators by default, but they can be granted to a private role and that role can be granted to a Super Administrator. For more details, see Private Roles.
-
Administrator: A regular Enterprise Manager administrator.
-
Repository Owner: A database administrator for the Management Repository database. This account cannot be modified, duplicated, or deleted.
The types of management tasks that the administrator can perform and targets that he can access depends on the roles, system privileges, resource privileges, and target privileges that he is granted. The Super Administrator can choose to let certain administrators perform only certain management tasks, or access only certain targets, or perform certain management tasks on certain targets. In this way, the Super Administrator can assign the minimum level of privileges that administrators need to do their job.
Reassigning Objects
To reassign objects from one Enterprise Manager administrator to another in preparation for deleting an administrator:
-
Navigate to the Setup > Security > Administrators page.e.
-
Select the administrator to be deleted, then click View to see all objects currently owned by the selected administrator.
-
To reassign the objects to another administrator, enter the name of the new administrator in the New Owner text box, or click the flashlight icon to view a list of available administrators.
-
Choose the desired Administrator to whom the objects must be reassigned then complete the operation.
Note:
A super administrator can use the Delete Administrator page to specify what happens to administrator-owned objects when removing an administrator from Enterprise Manager. On this page, a super administrator can:
-
Delete all administrator-owned objects along with the Enterprise Manager administrator
-
Reassign objects to another Enterprise Manager administrator
Note:
Only a Super Administrator can delete other Enterprise Manager administrators. Enterprise Manager will not allow administrators to:
-
Delete themselves
-
Delete the Management Repository owner
Administrator object reassignments can be handled as follows:
-
Blackouts can be reassigned to any user who has OPERATOR privileges on all targets affected by the blackout.
-
Jobs can be reassigned to any administrator. However, ALL credentials associated with the job will be removed, leaving the job in a Suspended state. This requires the new job owner to explicitly set new credentials. Currently running jobs are allowed to continue running. After the new job owner sets the credentials, the job will revert to a SCHEDULED state.
-
Corrective Actions can be reassigned to any administrator who has OPERATOR privileges for targets on which the corrective action can operate.
-
Report Definitions can be reassigned to any administrator.
-
Reports can be reassigned to any administrator.
-
Monitoring Templates can be reassigned to any administrator.
Aggregate Target Privileges
An Aggregate Target type is a target that has one or more member targets, for example groups, systems, or Real Application Cluster. Aggregate target privileges allows an Administrator to grant different levels of privileges to the member targets and to the Aggregate target. For example, an Administrator may want to grant VIEW privilege on the aggregate group level and FULL to each member target within the group. If the administrator does not grant specific privileges on the aggregate and its members, the default is the same privilege for the aggregate and it members.
For example, you can grant VIEW privilege at a group (Aggregate level) and FULL at the member target level. This allows a DBA granted FULL on a member target to perform full life cycle tasks including delete of the target. The DBA has VIEW privilege on the group, preventing him from deleting the group.
You can view/modify these privilege settings when creating or editing an Enterprise Manager administrator. From the Setup menu, select Security, and then select Administrators. Navigate to the Target Privilege page.
At the bottom of the Target Privileges page, you will find the Target Privileges region.
Check the Advanced Privilege Settings option to view settings for the aggregate target types that have been added to the user.
Two additional columns are displayed:
-
Manage Aggregate Only Privilege Grants
-
Manage Member Only Privilege Grants
Click the Edit (pencil) icon to change the privilege grant properties.
Privileges and Roles
Granting users specific privileges provide a basic level of security in Enterprise Manager. They are designed to control access to data and limit the management operations you can perform in Enterprise Manager such as changing monitoring settings or patching targets.
When Enterprise Manager is installed, the SYSMAN user (Super Administrator) is created by default. The SYSMAN Super Administrator can then create other administrator accounts for daily administration work. The SYSMAN account should only be used to perform infrequent system-wide, global configuration tasks.
The Super Administrator should grant the minimum level of privileges required to allow administrators to perform their tasks within Enterprise Manager. For example, the Super Administrator can allow some administrators to view any target and to add any target in the enterprise and other administrators to only perform specific operations such as maintaining and cloning on a target for which they are responsible.
Administrators and Database Privileges
Having DBA privileges on a database allows users to delete other database users, drop tables and perform other administrative operations. Hence, having DBA privileges on a repository database allows an administrator to perform all operations that can be performed as an Enterprise Manager Super Administrator: The administrator is implicitly treated as a Super Administrator. This is similar to OS authentication supported by the database where OS users with "DBA" privileges can connect to the Oracle server and exercise SYSDBA privileges.
If this level of access is not the intended behavior, Oracle recommends using one of the following:
-
The Enterprise Manager repository database needs to be considered as a special database. Do not grant DBA privileges to any users on that database other than to users who have Super Administrator privileges in Enterprise Manager.
-
Set up external authentication and migrate Enterprise Manager users to Active Directory or LDAP. This ensures that there are no shadow database users for Enterprise Manager application users being created and so DBA privileges cannot be granted to Enterprise Manager users.
Note:
Enterprise Manager administrators should not be given DBA privileges.
In situations where an Enterprise Manager Super Administrator has DBA privileges, SYSMAN will NOT be able to convert that user into a regular (non-Super Administrator) administrator until DBA privileges have are removed.
Granting Privileges
A privilege is a right to perform management actions within Enterprise Manager. Privileges can be divided into two categories:
-
Target Privileges
-
Resource Privileges
Target Privileges: These privileges allow an administrator to perform operations on a target. As such, there is a defined hierarchy the categorizes target privileges into the following levels:
-
OPERATOR: Medium level that permits specific management actions. OPERATOR privilege is also an example of a privilege that can include other privileges. For example, OPERATOR privileges include blackout privileges, and any user granted an OPERATOR target privilege is automatically granted the Blackout Target privilege. See Privileges.
There are two categories of target privileges:
-
Privileges applicable to all targets. These privileges allow administrators to perform operations on all components with the Enterprise Manager infrastructure.
-
Privileges applicable to a specific target instance. These privileges allow Administrators to perform operations on specific targets in the Enterprise Manager infrastructure.
The Target Privileges page shows a list of privileges granted to all targets. For a detailed list of target privileges, see Privileges.
Resource Privileges: These privileges grant administrator access to a specific functionality within Enterprise Manager. Examples of resource privileges include Backup Configurations, Cloud Policy, Compliance Framework, Enterprise Manager Plug-in, Job System, Patch Plan, Self Update and Template Collection. For a complete list refer to the Privileges and Roles section of Oracle Enterprise Manager Security Guide.
For example, to grant an administrator the ability to create new named credentials:
-
From the Setup menu, select Security and then Administrators. The Administrators page displays.
-
Either edit and existing administrator or create a new administrator to access the Administrator wizard.
-
Proceed to the Resource Privileges page.
-
From the Resource Type column, scroll down to Named Credential.
-
From the Manage Privilege Grants column, click on the corresponding pencil icon. The Resource Type Privileges page displays.
-
Select the privilege Create new named credential and click Continue to proceed with the administrator creation/edit processes
Fine-grained Access Control
Enterprise Manager implements granular privileges to control access to targets and other resources, enabling administrators to better segregate their duties. For example, consider the provisioning designer and provisioning operator job responsibilities. The former has greater responsibilities (creates components in the Software Library) than the latter (submits deployments). From the Security Console, you can view:
-
The list of super administrators
-
Administrators with highest number of direct privileges
-
Target privileges
-
Resource privileges
-
The top five Administrators with the highest number of roles
-
Roles with the highest number of nested roles
Creating Roles
A role is a collection of Enterprise Manager resource privileges, or target privileges, or both, which you can grant to administrators or to other roles. These roles can be based upon geographic location (for example, a role for Canadian administrators to manage Canadian systems), line of business (for example, a role for administrators of the human resource systems or the sales systems), or any other model. Administrators do not want to perform the task of individually granting access to tens, hundreds, or even thousands of targets to every new member of their group.By creating roles, an administrator needs only to assign the role that includes all the appropriate privileges to his team members instead of having to grant many individual privileges. He can divide workload among his administrators by filtering target access, or filtering access to management tasks, or both. You can also configure Enterprise Manager to work with an external authentication provider to manage authorization as well by using external roles. For more information, see External Authorization using External Roles.
Oracle-defined Roles: Enterprise Manager comes with predefined roles to manage a wide variety of resource and target types. The following table lists some of the roles along with their function. The number and type of roles displayed depend on the number and type of installed plug-ins. For a complete list of roles predefined by Oracle, see Oracle-defined Roles.
Public Roles: Enterprise Manager creates one role by default called Public. This role is unique in that it is automatically assigned to all new non-super administrators when they are created. By default it has no privileges assigned to it. The Public role should be used to define default privileges you expect to assign to a majority of non-super administrators you create. Privileges need not be assigned to Public initially - they can be added at any time. The role may be deleted if your enterprise does not wish to use it. If deleted, it can be added back in later if you later decide to implement it.
Private Roles
Private Roles are used to control the granting of sensitive/powerful privileges to administrators or roles. There are certain sensitive privileges which Enterprise Manager does not make available to Super Administrators. Specifically, they are:
-
LAUNCH_DP
-
FULL_DP
-
GET_CREDENTIAL
-
EDIT_CREDENTIAL
-
FULL_CREDENTIAL
-
FULL_JOB
These privileges are particularly sensitive and powerful, which is the reason Enterprise Manager does not grant these privileges to roles. Granting these privileges to roles would also make them available to other Administrators.
To accommodate the granting of these types of privileges in a more secure manner, roles are divided into two categories - system roles and private roles.
-
Private roles are managed by administrators with the create_role privilege. Administrators granted the create_role privilege (Private Role) will maintain the lifecycle of the named credential and job roles, and will allow an administrator to grant these full job and full credential privileges to other administrators and to roles.
-
System roles define all roles accessible to all Administrators with the manage_system_role privilege.
A private role can be granted to other administrators and roles via the Enterprise
Manager console and EM CLI using the emcli create_role
verb, and
made grantable with emcli grant_privs
verb.
Example 1:
emcli create_role -name="my_private_role" -type="EM_ROLE" -desc="This is a new private role called my_private_role" -roles="role1;role2;role3" -privilege="full_job;923470234ABCDFE23018494753091111" -privilege="FULL_CREDENTIAL;CRED_NAME=cred1:CRED_OWNER=user2" -users="USER1;USER2:WITH_ADMIN" -private_role[ Optional ]
This will create my_private_role owned by the logged-in user.
USER1 will be granted this role as WITHOUT_ADMIN option and USER2 will be granted this role as WITH_ADMIN option.
This role will consist of FULL_JOB and FULL_CREDENTIAL privileges on respective objects.
The owner of a private role can grant this role to an administrator, and can specify if the other administrator has the right to further grant this private role to another administrator (by using the WITH_ADMIN option) or to another private role. In effect, the role owner is privately administering access to this role, hence the name private role. A system role can be granted to a private role, but a private role cannot be granted to a system role.
Verbs where the WITH_ADMIN option is supported:
create_role -users
modify_role -users
create_user -roles
modify_user -roles
grant_roles -roles
Using Roles to Manage Privileges
Privileges are ultimately granted to administrators to enable them to manage targets in Enterprise Manager. While you can grant specific privileges to individual administrators, tracking and granting privileges on many targets across many administrators easily becomes error-prone and an administrative burden in itself. Our recommendation is to define and use roles to manage the granting of privileges to administrators. A role is a user-defined set of privileges typically containing the set of privileges that you want to grant to a team of users. A role can contain other roles as well. For example, you can create a First Line Support role containing the privileges needed for the administrators to view and manage incidents on targets. Once this role is created, you can grant this role to the appropriate administrators who will manage these incidents as part of their job responsibility. If you need to change the set of privileges for your administrators, for example, add new privileges or remove privileges, then all you need to do is update the role. The updated set of privileges in the role is automatically enabled for the administrators to whom the role has been granted. Likewise if new administrators are added, all you need to do is grant them the appropriate role(s) instead of granting them individual privileges.
Using roles is one big step towards managing privileges. However, there is still the challenge of having to keep the role updated with privileges on new targets as they are added to Enterprise Manager. Privilege-propagating groups are meant to address this challenge and will be discussed next.
Managing Privileges with Privilege Propagating Groups
To manage the granting of privileges across potentially hundreds or thousands of targets to a large set of administrators, use privilege propagating groups in conjunction with roles. A group is a user-defined collection of targets that you can create in order to manage and monitor the targets collectively as a unit. A privilege propagating group is a special type of group where a privilege that is granted on the group to a user automatically gives him that same privilege to all existing and new members of the group.
Leverage the privilege-propagating nature of Administration Groups
Enterprise Manager administration groups are privilege-propagating in nature. This means that a privilege on the administration group that is granted to a user or a role automatically propagates to all members of the group including any subgroups. If a new target is added to an administration group, then because the administration group is privilege-propagating, the user or role that has privileges on the administration group automatically gets privileges on the newly added target by virtue of it joining the group. No additional work is needed for granting privileges on the new target. Thus granting target privileges is much simpler because all you need to do is a one-time setup of granting privileges on the group to a role.
Create Roles for Different Job Responsibilities
After you have planned the various job responsibilities and mapped these to the corresponding privileges in Enterprise Manager, the next step is to create roles in Enterprise Manager containing privileges required for each job responsibility. In our example below, here are the various roles that need to be created for each job responsibility. Note that when it comes to privileges on targets in the administration group, the recommendation is to grant the privilege on the administration group and not on individual targets in order to leverage the privilege propagating nature of administration groups.
JOB RESPONSIBILITY | ROLE IN ENTERPRISE MANAGER | PRIVILEGES IN THE ROLE (MINIMUM SET) |
---|---|---|
Group Administrator Responsible for defining group membership and for granting privileges on the group to other administrators. |
GROUP_ADMIN_ROLE |
Group Administration on the group |
Senior Administrator Responsible for adding and removing targets in Enterprise Manager, and for planning and setting up monitoring settings for targets. He is also responsible for setting up rules related to creating incidents for events and sending notifications. |
SENIOR_ADMIN_ROLE |
Add Any Target Create Enterprise Rule Set Operator on the group Create on Job System EM_TC_DESIGNER role |
Target Owner For the targets he owns, he is responsible for setting monitoring settings, responding to events/incidents, and for performing maintenance operations |
TARGET_OWNER_ROLE |
Operator on the Administration Group(s) that he is managing Create on Job System View Any Monitoring Template View on the Template Collection(s) associated with the group(s) he is managing |
First Level Support Responsible for responding to events/incidents on targets. As part of operational procedures, he is allowed to blackout a target that is down. |
FIRST_LEVEL_SUPPORT |
Manage Target Events on the appropriate Administration Group(s) Blackout Target on the appropriate Administration Group(s) |
The privileges listed in the table represent the minimum set of privileges in the role. Additional privileges can be added based on other responsibilities. Also note that you will need to have Super Administrator privileges to create roles. Once roles have been defined, you can now grant these roles to your Enterprise Manager administrators. This can be done in several ways:
-
Assign roles while creating/editing an Enterprise Manager administrator.
-
As part of creating/editing a role, you to choose administrators to whom you would like to grant the role.
-
When creating/editing administrators using the Enterprise Manager Command Line tool (EM CLI), you can specify the roles granted to the user. You can also use EM CLI to grant roles directly to an existing user.
As an example, say you want to grant Operator privileges on host targets used by the development team to all members of the development team. You can first ceate a privilege propagating group (Devt-Group) containing the relevant host targets. Then create a role (Devt-Role) and in this role include Operator privileges on Devt-Group. Finally grant the Devt-Role to all members of the development team. This will result in providing all members of the development team Operator privileges on all targets in Devt-Group. As new host targets are added, you can simply add these new targets to Devt-Group and all members of the development team automatically obtain Operator privileges on the newly added targets. The following scenarios provide additional examples of using privilege propagating groups with roles.
We shall step through two use cases which outline when best to use privilege propagating groups, how to create target groups, add member to this group, and assign roles and Administrators to these target groups.
Example1: Granting various teams different levels of access to target groups
Consider a collection of Database Instances and WebLogic Servers within an organization are managed by separate teams within the organization. Both teams are using Enterprise Manager to manage their targets.The DBAs want full access privileges to their Database Instances and view privileges on the WebLogic Servers. Similarly, the WebLogic Server administrators want full privileges on the WebLogic Servers and view privileges on the Database Instances.
To manage privileges across the two teams, first create two privilege propagating groups containing the targets of the respective teams. For example, you can create a target group called DBAGroup containing the database Instances and another target group called WLSGroup containing the Oracle WebLogic Servers. DBAGroup contains the Database Instances that can be modified and managed by DBAs. While the WLSGroup is a group of Web Logic Servers modified and managed by the Web Logic Server administrators . Additionally, the DBAs want to view the Web Logic Server targets and the Web Logic Server technicians want to view the Database Instances. The following steps will show how to set up these target groups, privileges and roles, and how to grant the appropriate roles to the correct Administrator.
Here are the steps to follow:
Example 2: Granting developers view access to target database instances.
DBAs within data centers typically provide application developers read-only access to database performance pages in Enterprise Manager in order for them to view firsthand information on the impact of their applications on the underlying database and restrict them from performing any write operations on the database. The DBAs may not want to share database user account information with the developers nor create individual user accounts on every database instance.
You can use the Connect Target Read-Only privilege to enable read-only access
to a target. To manage the granting of this privilege across many databases to a
team of developers, create a privilege propagating group, and add the Database
Instances to this target group, calling it, for example DevGroup. You create
a role, for example DEV-ROLE and grant the privilege Connect Target
Read-Only to that role. In doing so, you assign this role to each developer,
granting him access to the performance data in those database instances. Since these
engineers do not have individual user accounts on each database instance, create a
named credential, call it DevCred
which contains database user
credentials and assign this named credential to each developer needing access to the
performance data in the database instances. The following steps will show you how to
set up the target group and assign roles and named credentials to this group.
Here are the steps to follow:
Entitlement Summary
The Administrators Entitlement page displays all the privileges and roles granted to that Administrator. This page also summarizes an Administrators access to targets as well as displaying the named credentials and secure resources owned by that Administrator. The following fiture shows an example of the Enterprise Manager Administrator Entitlement page. You can access this page by clicking on the dropdown menu, beside the Administrators name, and clicking Entitlement Summary.