{"id":94,"date":"2016-01-22T15:21:47","date_gmt":"2016-01-22T15:21:47","guid":{"rendered":"https:\/\/www.spotonoracle.com\/?p=94"},"modified":"2016-05-10T16:28:40","modified_gmt":"2016-05-10T16:28:40","slug":"enterprise-user-security-part-4","status":"publish","type":"post","link":"https:\/\/www.spotonoracle.com\/?p=94","title":{"rendered":"Enterprise User Security &#8211; Part 4"},"content":{"rendered":"<p>Before we start registering databases and creating users and groups in the directory, we must first patch our Oracle 12c database homes. If you followed me since <a href=\"https:\/\/www.spotonoracle.com\/?p=77\" target=\"_blank\">part 1<\/a> of this series you already have the necessary binaries to update OPatch and install database patch 19285025. Since I assume most of you are professional DBAs I&#8217;m not going into the details of applying the database patch. Unfortunately, the patch read-me does not tell you to re-link the LDAP client binaries which actually is the crucial bit.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\ncd ${ORACLE_HOME}\/ldap\/lib\r\nmake -f ins_ldap.mk ORACLE_HOME=${ORACLE_HOME} clientonlyinstall\r\n<\/pre>\n<p>&nbsp;<br \/>\n<strong>Register a database<\/strong><br \/>\nFor the database to be able to communicate with the directory service we must register it with the OUD. The database will be an entity in the directory and is required to authenticate itself as such.<\/p>\n<p>Configure ldap.ora:<br \/>\nThis will let the database know where to contact the directory server.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\nvi ${TNS_ADMIN}\/ldap.ora\r\n\r\nDIRECTORY_SERVERS=(&lt;OUD_SERVER&gt;:1389:1636)\r\nDIRECTORY_SERVER_TYPE=OID\r\nDEFAULT_ADMIN_CONTEXT=&quot;dc=spotonoracle,dc=ch&quot;\r\n<\/pre>\n<p>Configure sqlnet.ora:<br \/>\nThe database will use a wallet to store the credentials used to authenticate itself with the directory service. If the database is already using a wallet for some other feature, you can share it.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\nmkdir \/u01\/app\/oracle\/admin\/${ORACLE_SID}\/wallet\r\n\r\nvi ${TNS_ADMIN}\/sqlnet.ora\r\n \r\nNAMES.DIRECTORY_PATH = (LDAP, TNSNAMES, EZCONNECT)\r\nWALLET_LOCATION =\r\n  (SOURCE =\r\n    (METHOD = FILE)\r\n    (METHOD_DATA =\r\n      (DIRECTORY = \/u01\/app\/oracle\/admin\/$ORACLE_SID\/wallet)\r\n    )\r\n  )\r\n<\/pre>\n<p>Define how the database will login to OUD:<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\nalter system set ldap_directory_access=password scope=both;\r\n<\/pre>\n<p>&nbsp;<br \/>\nRegistering the database:<br \/>\nThe DBCA (Database Configuration Assistant) is used to register databases with the directory service. The password used by the database for authentication is generated automatically and stored in the wallet. The wallet password is provided by you. If you already have a wallet the DBCA will just add the necessary entry, otherwise it will create a new wallet.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\ndbca -silent \\\r\n  -configureDatabase \\\r\n  -sourceDB &quot;${ORACLE_SID}&quot; \\\r\n  -registerWithDirService true \\\r\n  -dirServiceUserName &quot;cn=diradmin&quot; \\\r\n  -dirServicePassword &quot;Complex-1-Password&quot; \\\r\n  -walletPassword 'Wallet-1-Password'\r\n<\/pre>\n<p>You can view the registration password generated by the DBCA:<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\nmkstore -wrl \/u01\/app\/oracle\/admin\/${ORACLE_SID}\/wallet -viewEntry ORACLE.SECURITY.PASSWORD\r\n<\/pre>\n<p>Verify the dababase is an entity in the directory:<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\nldapsearch -D &quot;cn=diradmin&quot; -w &quot;Complex-1-Password&quot; -h &lt;OUD_SERVER&gt; -p 1389 -b dc=spotonoracle,dc=ch cn=${ORACLE_SID} -LLL\r\n<\/pre>\n<p>From now on, as a nice side effect, clients (e.g. SQL*Plus) can use OUD as TNS names resolution service.<\/p>\n<p><strong>Prepare the database EUS user and roles<\/strong><br \/>\nYou&#8217;ll most likely going to use shared schemas, so that&#8217;s what I&#8217;m doing here.<br \/>\nI create a globally identified user. This means, the database will be using the directory service to authenticate client connection request. This user does not get any privileges or roles granted at all.<br \/>\nThe newly created global role gets all the privileges and roles that are required for the users in a given functional role.<\/p>\n<pre class=\"brush: sql; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\ncreate user eus_user identified globally;\r\n\r\ncreate role eus_dba_role identified globally;\r\ngrant create session to eus_dba_role;\r\ngrant dba to eus_dba_role;\r\n<\/pre>\n<p>&nbsp;<br \/>\n<strong>Prepare directory objects<\/strong><br \/>\nThere are certain tasks that are more easily performed in the ODSM web console, e.g. create users and groups. We want to create the following structure in the GUI:<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/00-target-structure-odsm.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/00-target-structure-odsm-300x81.png\" alt=\"00-target-structure-odsm\" width=\"300\" height=\"81\" class=\"alignnone size-medium wp-image-96\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/00-target-structure-odsm-300x81.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/00-target-structure-odsm.png 525w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Create a group named &#8220;Users&#8221; to hold user entities. Navigate to level: &#8220;Root&#8221; => &#8220;dc=spotonoracle,dc=ch&#8221; and create a &#8220;Static Group Entry&#8221;:<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/01-create-group-menu.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/01-create-group-menu-300x270.png\" alt=\"01-create-group-menu\" width=\"300\" height=\"270\" class=\"alignnone size-medium wp-image-97\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/01-create-group-menu-300x270.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/01-create-group-menu.png 465w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>In the group details, enter the common name: Users<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/02-create-users-group.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/02-create-users-group-300x128.png\" alt=\"02-create-users-group\" width=\"300\" height=\"128\" class=\"alignnone size-medium wp-image-98\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/02-create-users-group-300x128.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/02-create-users-group-768x328.png 768w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/02-create-users-group-1024x437.png 1024w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/02-create-users-group-624x266.png 624w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/02-create-users-group.png 1144w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Create another static group named &#8220;Groups&#8221; on the same level as &#8220;Users&#8221; (dc=spotonoracle,dc=ch):<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/03-create-groups-group.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/03-create-groups-group-300x129.png\" alt=\"03-create-groups-group\" width=\"300\" height=\"129\" class=\"alignnone size-medium wp-image-104\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/03-create-groups-group-300x129.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/03-create-groups-group-768x329.png 768w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/03-create-groups-group-1024x439.png 1024w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/03-create-groups-group-624x268.png 624w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/03-create-groups-group.png 1145w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Create a DBA Group named &#8220;DBAdmins&#8221; under the &#8220;Groups&#8221; group. In the left tree, navigate to &#8220;Groups&#8221; and add a new static group &#8220;DBAdmins&#8221; below:<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/04-create-dbadmins-group.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/04-create-dbadmins-group-300x130.png\" alt=\"04-create-dbadmins-group\" width=\"300\" height=\"130\" class=\"alignnone size-medium wp-image-99\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/04-create-dbadmins-group-300x130.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/04-create-dbadmins-group-768x334.png 768w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/04-create-dbadmins-group-1024x445.png 1024w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/04-create-dbadmins-group-624x271.png 624w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/04-create-dbadmins-group.png 1145w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Create a user named &#8220;admjohn&#8221;. In the left tree, navigate to group &#8220;Users&#8221; and create a &#8220;User Entry&#8221;:<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/05-create-user-menu.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/05-create-user-menu-300x300.png\" alt=\"05-create-user-menu\" width=\"300\" height=\"300\" class=\"alignnone size-medium wp-image-100\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/05-create-user-menu-300x300.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/05-create-user-menu-150x150.png 150w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/05-create-user-menu.png 423w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Fill in the user&#8217;s details. Note, the field &#8220;User ID&#8221; maps to the user name that will be provided in the database connection string. &#8220;User Password&#8221; is the password that the end user will provide to authenticate with the database.<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/06-create-admjohn.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/06-create-admjohn-300x188.png\" alt=\"06-create-admjohn\" width=\"300\" height=\"188\" class=\"alignnone size-medium wp-image-101\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/06-create-admjohn-300x188.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/06-create-admjohn-768x482.png 768w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/06-create-admjohn-1024x643.png 1024w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/06-create-admjohn-624x392.png 624w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/06-create-admjohn.png 1144w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Important: the user object must have some special attributes. This is what makes the user entity a EUS user from a directory services perspective.<br \/>\nIn the tree, click on the user and switch to tab &#8220;Attributes&#8221;. Add following &#8220;Object Classes&#8221; to the &#8220;Mandatory Attributes&#8221;:<\/p>\n<ul>\n<li>orclUser<\/li>\n<li>orclUserV2<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/07-create-admjohn-attributes.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/07-create-admjohn-attributes-300x117.png\" alt=\"07-create-admjohn-attributes\" width=\"300\" height=\"117\" class=\"alignnone size-medium wp-image-102\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/07-create-admjohn-attributes-300x117.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/07-create-admjohn-attributes-768x298.png 768w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/07-create-admjohn-attributes-1024x398.png 1024w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/07-create-admjohn-attributes-624x242.png 624w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/07-create-admjohn-attributes.png 1138w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Add user &#8220;admjohn&#8221; to the &#8220;DBAdmins&#8221; group. In the tree click on &#8220;DBAadmins&#8221;, under &#8220;Member Information&#8221; click &#8220;Add&#8221; and select &#8220;cn=admjohn,cn=Users,dc=spotonoracle,dc=ch&#8221;.<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/08-create-group-membership.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/08-create-group-membership-300x87.png\" alt=\"08-create-group-membership\" width=\"300\" height=\"87\" class=\"alignnone size-medium wp-image-103\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/08-create-group-membership-300x87.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/08-create-group-membership-768x222.png 768w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/08-create-group-membership-1024x296.png 1024w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/08-create-group-membership-624x180.png 624w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/08-create-group-membership.png 1139w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>OK, let&#8217;s get some coffee<\/strong><\/p>\n<p>If you&#8217;re still with me but lost a little track, we should take another look at the bigger picture I showed in <a href=\"https:\/\/www.spotonoracle.com\/?p=77\" target=\"_blank\">part 1<\/a>.<br \/>\n<a href=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/eus-relationship.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/eus-relationship-300x169.png\" alt=\"eus-relationship\" width=\"300\" height=\"169\" class=\"alignnone size-medium wp-image-79\" srcset=\"https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/eus-relationship-300x169.png 300w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/eus-relationship-768x432.png 768w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/eus-relationship-1024x576.png 1024w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/eus-relationship-624x351.png 624w, https:\/\/www.spotonoracle.com\/wp-content\/uploads\/2016\/01\/eus-relationship.png 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nSo far we have covered:<\/p>\n<ul>\n<li>Green: objects in the database<\/li>\n<li>Blue: groups of objects in the LDAP directory<\/li>\n<li>Red: user entities in the LDAP directory<\/li>\n<\/ul>\n<p>What we&#8217;re going to do next is:<\/p>\n<ul>\n<li>Yellow: enterprise roles in the LDAP directory<\/li>\n<li>All the mappings (arrows)<\/li>\n<li>All the grants (arrows)<\/li>\n<\/ul>\n<p>This will be quite a lengthy post but don&#8217;t think it makes much sense to break it up in pieces. I will go on&#8230;but this time, using the Oracle EUSM utility (it&#8217;s documented in MOS note 1085065.1). Alternatively, you can do the same thing in the Enterprise Manager web console (perhaps more comfortable in a GUI). I like the CLI because it&#8217;s self-documenting and scriptable.<\/p>\n<p><strong>Create enterprise roles, mappings, and grants<\/strong><\/p>\n<p>Set default schema for all our enterprise users in the &#8220;Users&#8221; group. This will create the mapping for the group &#8220;Users&#8221; to database schema &#8220;EUS_USER&#8221;, and inherently all users in that group.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\neusm createMapping \\\r\n  domain_name=&quot;OracleDefaultDomain&quot; \\\r\n  map_type=&quot;SUBTREE&quot; \\\r\n  map_dn=&quot;cn=Users,dc=spotonoracle,dc=ch&quot; \\\r\n  schema=&quot;EUS_USER&quot; \\\r\n  realm_dn=&quot;dc=spotonoracle,dc=ch&quot; \\\r\n  ldap_host=&lt;OUD_SERVER&gt; \\\r\n  ldap_port=1389 \\\r\n  ldap_user_dn=&quot;cn=diradmin&quot; \\\r\n  ldap_user_password=&quot;Complex-1-Password&quot;\r\n<\/pre>\n<p>Previously, we have created a global role &#8220;EUS_DBA_ROLE&#8221; in the database. We need a matching role entity in the directory and call the enterprise role &#8220;DBARole&#8221;.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\neusm createRole \\\r\n  enterprise_role=&quot;DBARole&quot; \\\r\n  domain_name=&quot;OracleDefaultDomain&quot; \\\r\n  realm_dn=&quot;dc=spotonoracle,dc=ch&quot; \\\r\n  ldap_host=&lt;OUD_SERVER&gt; \\\r\n  ldap_port=1389 \\\r\n  ldap_user_dn=&quot;cn=diradmin&quot; \\\r\n  ldap_user_password=&quot;Complex-1-Password&quot;\r\n<\/pre>\n<p>Create a mapping between the enterprise role and the database role. The enterprise role can be mapped to many databases. For your sanity&#8217;s sake I don&#8217;t recommend to mix and match a lot.<br \/>\nE.g. Map the &#8220;DBARole&#8221; enterprise role only to the same role (incl. its definition) on multiple database. In this case the database role should be EUS_DBA_ROLE with the exact same grants on all database. Otherwise don&#8217;t map it to &#8220;DBARole&#8221; and create a separate enterprise role.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\neusm addGlobalRole \\\r\n  enterprise_role=&quot;DBARole&quot; \\\r\n  domain_name=&quot;OracleDefaultDomain&quot; \\\r\n  realm_dn=&quot;dc=spotonoracle,dc=ch&quot; \\\r\n  database_name=&quot;${ORACLE_SID}&quot; \\\r\n  global_role=&quot;EUS_DBA_ROLE&quot; \\\r\n  dbuser=&quot;system&quot; \\\r\n  dbuser_password=&quot;&lt;SYSTEM_PASSWORD&gt;&quot; \\\r\n  dbconnect_string=&quot;&lt;DB_HOST_NAME&gt;:&lt;LISTENER_PORT&gt;\/&lt;DB_SERVICE_NAME&gt;&quot; \\\r\n  ldap_host=&lt;OUD_SERVER&gt; \\\r\n  ldap_port=1389 \\\r\n  ldap_user_dn=&quot;cn=diradmin&quot; \\\r\n  ldap_user_password=&quot;Complex-1-Password&quot;\r\n<\/pre>\n<p>What&#8217;s left missing is the grant. We grant the role &#8220;DBARole&#8221; to the &#8220;DBAdmins&#8221; group. All the members of the &#8220;DBAdmins&#8221; group inherit this role grant.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\neusm grantRole \\\r\n  enterprise_role=&quot;DBARole&quot; \\\r\n  domain_name=&quot;OracleDefaultDomain&quot; \\\r\n  realm_dn=&quot;dc=spotonoracle,dc=ch&quot; \\\r\n  group_dn=&quot;cn=DBAdmins,cn=Groups,dc=spotonoracle,dc=ch&quot; \\\r\n  ldap_host=&lt;OUD_SERVER&gt; \\\r\n  ldap_port=1389 \\\r\n  ldap_user_dn=&quot;cn=diradmin&quot; \\\r\n  ldap_user_password=&quot;Complex-1-Password&quot;\r\n<\/pre>\n<p>&nbsp;<br \/>\n<strong>Voil\u00e0<\/strong><\/p>\n<pre class=\"brush: bash; collapse: false; title: ; wrap-lines: false; notranslate\" title=\"\">\r\n$ sqlplus admjohn\/************@&lt;DB_HOST_NAME&gt;:&lt;LISTENER_PORT&gt;\/&lt;DB_SERVICE_NAME&gt;\r\nSQL&gt; select * from session_roles;\r\nROLE\r\n--------------------------------------------------------------------------------\r\nEUS_DBA_ROLE\r\n<\/pre>\n<p>&nbsp;<br \/>\n<strong>Summary<\/strong><br \/>\nWith the fourth part of this series I conclude the basic setup of OUD, ODSM, and EUS. If I find the time I&#8217;m going to show some other aspects of OUD and EUS (directory replication, custom SSL certificates, directory disaster recovery or some more complex EUS setups). We&#8217;ll see&#8230;<br \/>\nSo long, enjoy EUS.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Before we start registering databases and creating users and groups in the directory, we must first patch our Oracle 12c database homes. If you followed me since part 1 of this series you already have the necessary binaries to update OPatch and install database patch 19285025. Since I assume most of you are professional DBAs [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,7],"tags":[],"class_list":["post-94","post","type-post","status-publish","format-standard","hentry","category-eus","category-oud"],"_links":{"self":[{"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=\/wp\/v2\/posts\/94","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=94"}],"version-history":[{"count":7,"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=\/wp\/v2\/posts\/94\/revisions"}],"predecessor-version":[{"id":131,"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=\/wp\/v2\/posts\/94\/revisions\/131"}],"wp:attachment":[{"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=94"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=94"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.spotonoracle.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=94"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}