{"id":1593,"date":"2024-07-04T21:44:02","date_gmt":"2024-07-04T16:14:02","guid":{"rendered":"https:\/\/adilfahim.com\/myblog\/?p=1593"},"modified":"2024-07-05T11:58:06","modified_gmt":"2024-07-05T06:28:06","slug":"oracle-brtools-ssfs-configuration","status":"publish","type":"post","link":"https:\/\/adilfahim.com\/myblog\/oracle-brtools-ssfs-configuration\/","title":{"rendered":"Oracle BRTOOLS SSFS Configuration"},"content":{"rendered":"<p>If you are still managing an SAP system with an Oracle database. If so, understanding how to configure\u00a0BRTOOLS SSFS\u00a0(Secure Storage in File System) is crucial. SSFS provides a secure way to store sensitive data such as database passwords. Let\u2019s dive into the key steps:<\/p>\n<h3>Avoid using OPS$ mechanism, locking\/deleting OPS$ users<\/h3>\n<p>Reference \u2013<\/p>\n<p><b>1764043 &#8211; Support for secure storage in BR*Tools<br \/>\n1622837 &#8211; Secure connection of AS ABAP to Oracle via SSFS<br \/>\nClick for SAP Help <a href=\"https:\/\/help.sap.com\/docs\/SAP_NETWEAVER_DBOS\/3ef1b95cacbf4f77a066797285371bb9\/0faa5d24edb54adb9722cb6ab84595eb.html\" target=\"_blank\" rel=\"noopener\">Portal<\/a><\/b><\/p>\n<p>Validation before performing any change(BRTOOLS SSFS) with existing setup(OPS$) \u2013<\/p>\n<p>Validate SAP \u2013 DB13 jobs should be running fine.<\/p>\n<p>Trigger below command should be getting completed without any error.<\/p>\n<p><b>ora<sid> &#8211; brconnect -u \/ -c -f stats -t all<\/b><\/p>\n<p><b>OPS$ users in DB<\/b> \u2013<\/p>\n<p><SQL>select name, ctime, ptime from user$ where name like &#8216;%OPS$%&#8217;;<\/p>\n<p>OPS$ORA<SID> (On UNIX this user is responsible for BRTOOLS binaries and SAP DB13)<\/p>\n<p>OPS$<SID>ADM (windows user)<\/p>\n<p>OPS$SAPSERVICE<SID> (windows user)<\/p>\n<p>Login to OS level via ora<sid> and check the $SAPDATA_HOME variable.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/1.png\" alt=\"BRTOOLS SSFS\" width=\"662\" height=\"128\" class=\"alignnone size-full wp-image-1595\" srcset=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/1.png 662w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/1-300x58.png 300w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/><\/p>\n<p><b>create below directories via ora<sid> user by running this command<\/b> \u2013<\/p>\n<p>mkdir -p $SAPDATA_HOME\/security\/rsecssfs\/data<\/p>\n<p>mkdir -p $SAPDATA_HOME\/security\/rsecssfs\/key<\/p>\n<p>mkdir -p $SAPDATA_HOME\/security\/rsecssfs\/log<\/p>\n<p>mkdir -p $SAPDATA_HOME\/security\/rsecssfs\/temp<\/p>\n<p><b>Connect to Oracle<\/b><\/p>\n<p>SQL> connect \/ as sysdba<\/p>\n<p>SQL> create user brt$adm identified by <password>;<\/p>\n<p>SQL> grant sapdba, sysdba, sysoper to brt$adm;<\/p>\n<p><b>Updating the password in Secure Storage for BRTOOLS SSFS<\/b> \u2013<\/p>\n<p>Run below command to set the temporary variable for this present session.<\/p>\n<p>setenv RSEC_SSFS_DATAPATH \/oracle\/<SID>\/security\/rsecssfs\/data<\/p>\n<p>setenv RSEC_SSFS_KEYPATH \/oracle\/<SID>\/security\/rsecssfs\/key<\/p>\n<p>Run below command \u2013<\/p>\n<p><b>brconnect -u \/ -c -f chpass -o &#8216;BRT$ADM&#8217; -p <password> -s brtools<\/b><\/p>\n<p>this will generate below file at OS level and set the key also.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/2.png\" alt=\"BRTOOLS SSFS\" width=\"997\" height=\"168\" class=\"alignnone size-full wp-image-1596\" srcset=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/2.png 997w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/2-300x51.png 300w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/2-768x129.png 768w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><br \/>\n\u00a0<br \/>\n<b>To stop the new password from\u00a0BRT$ADM\u00a0expiring, which leads to an oracle error (ORA-28001: the password has expired), we recommend allocating the\u00a0SAPUPROF\u00a0profile to the database user:<\/b><\/p>\n<p>SQL> connect \/ as sysdba<\/p>\n<p>SQL> alter user BRT$ADM profile SAPUPROF;<\/p>\n<p>Validate the new configuration is working fine \u2013<\/p>\n<p><b>brconnect -u \/\/ -c -f stats -t all<\/b><\/p>\n<p>the above command should be completed successfully without any error. If it\u2019s working then now it\u2019s not using OPS$ mechanism and working with brt$adm user(created in oracle).<\/p>\n<p>Note \u2013 above environment variable are temporary for configuration. Post configuration, there is no requirement of temporary environment variables hence log out and login again to ora<sid> user and run the below command, it should be completed successfully.<\/p>\n<p><b>brconnect -u \/\/ -c -f stats -t all<\/b><\/p>\n<p><b>Locking the OPS$ users in Oracle post BRTOOLS SSFS Configuration<\/b><\/p>\n<p>sqlplus \/ as sysdba<\/p>\n<p>alter user OPS$ORA<SID> account lock;<\/p>\n<p>alter user OPS$<SID>ADM account lock;<\/p>\n<p>alter user OPS$SAPSERVICE<SID> account lock;<\/p>\n<p>Post locking these users command &#8211; brconnect -u \/ -c -f stats -t all will start failing with error \u201cAccount is Locked\u201d.<\/p>\n<p>As we now change from OPS$ to SSFS brconnect -u \/\/ -c -f stats -t all should be running fine without any error hence it means our configuration is successfully completed.<\/p>\n<p>These users can be deleted post configuration changes and validations at SAP level.<\/p>\n<h3>Changes in SAP Systems to run successfully DB13 jobs<\/h3>\n<p>(Take table backup of both tables before performing any changes)<\/p>\n<p>New connection method for BR*Tools calls in the CCMS transaction DBACOCKPIT\/DB13. To do this, the content of the SAP table SDBAC_DATA (SAP_BASIS Releases 7.10, 7.11, 7.20, and 7.30) or SDBAC (other SAP_BASIS releases)\u00a0must be modified.\u00a0Use the SQL script db13secd.sql or db13sec.sql for this see attachment of note 1764043.<\/p>\n<p><b>In SAP_BASIS releases 7.10, 7.11, 7.20, and 7.30:<\/b><\/p>\n<p>sqlplus \/ as sysdba<br \/>\nRun the script<\/p>\n<p>In other SAP_BASIS releases:<br \/>\nsqlplus \/ as sysdba<br \/>\nRun the script<\/p>\n<p>The following Support Packages are required for this change:<\/p>\n<p>SAP Basis Release 7.00: SAPKB70026<br \/>\nSAP Basis Release 7.01: SAPKB70111<br \/>\nSAP Basis Release 7.02: SAPKB70210<br \/>\nSAP Basis Release 7.10: SAPKB71013<br \/>\nSAP Basis Release 7.11: SAPKB71108<br \/>\nSAP Basis Release 7.30: SAPKB73004<br \/>\nSAP Basis Release 7.31: SAPKB73101<\/p>\n<p>If you want to manage remote databases that are not addressed via an RFC destination (such as Java databases or other non-ABAP databases) with DBACOCKPIT\/DB13, you must import the following Support Packages instead:<\/p>\n<p>SAP Basis Release 7.00: SAPKB70029<br \/>\nSAP Basis Release 7.01: SAPKB70114<br \/>\nSAP Basis Release 7.02: SAPKB70214<br \/>\nSAP Basis Release 7.10: SAPKB71017<br \/>\nSAP Basis Release 7.11: SAPKB71112<br \/>\nSAP Basis Release 7.30: SAPKB73009<br \/>\nSAP Basis Release 7.31: SAPKB73107<\/p>\n<p>Alternatively, you can implement the attached correction instructions.<br \/>\n<b>Lower SAP release levels are not supported here.<\/b><\/p>\n<p>Download the respective file and run on the system, as <SID> is NW 7.01 hence (db13sec) file is supported.<\/p>\n<p>Trigger the file with below command \u2013<\/p>\n<p>sqlplus \/ as sysdba<\/p>\n<p>\/tmp\/db13.sql<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/3.png\" alt=\"BRTOOLS SSFS\" width=\"998\" height=\"381\" class=\"alignnone size-full wp-image-1597\" srcset=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/3.png 998w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/3-300x115.png 300w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/3-768x293.png 768w\" sizes=\"auto, (max-width: 998px) 100vw, 998px\" \/><\/p>\n<p><b>Validate SDBAC table in SAP system.<\/b><\/p>\n<p>Now \/\/ entry is there in the table.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/4.png\" alt=\"BRTOOLS SSFS\" width=\"624\" height=\"283\" class=\"alignnone size-full wp-image-1598\" srcset=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/4.png 624w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/4-300x136.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/p>\n<p><b>Schedule DB13 jobs in SAP post above changes to validate, it should be getting completed.<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/5.png\" alt=\"BRTOOLS SSFS\" width=\"999\" height=\"564\" class=\"alignnone size-full wp-image-1599\" srcset=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/5.png 999w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/5-300x169.png 300w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/5-768x434.png 768w\" sizes=\"auto, (max-width: 999px) 100vw, 999px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/6.png\" alt=\"BRTOOLS SSFS\" width=\"998\" height=\"700\" class=\"alignnone size-full wp-image-1600\" srcset=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/6.png 998w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/6-300x210.png 300w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/6-768x539.png 768w\" sizes=\"auto, (max-width: 998px) 100vw, 998px\" \/><\/p>\n<p>\u00a0<br \/>\n<b>Difference of OPS$ and User mechanism working<\/b> \u2013<\/p>\n<p>Ans &#8211; By Default any brtools library run command as below when OPS$ mechanism is configured.<\/p>\n<p><b>brconnect -u \/ -c -f stats -t all<\/b><\/p>\n<p>But once you configured user mechanism to avoid OPS$ by locking or deleting the database which is a secure method. You need to run command as below \u2013<\/p>\n<p><b>brconnect -u \/\/ -c -f stats -t all<\/b><\/p>\n<p>\/\/ means \u2013 it\u2019s now running with SSFS method avoiding OPS$ mechanism.<\/p>\n<p>Running BRTOOLS post above configuration \u2013<\/p>\n<p>There is a slight change for running brtools after above user configuration(avoid OPS$ mechanism), as BRTOOLS is configured with OPS$ user with (\/), it will start failing hence need to change (\/) to (\/\/) in the command as below \u2013<\/p>\n<p><b>For example \u2013 Default Value of \/<br \/>\nNew Change Value \u2013 Database user\/password (user ) \u2026\u2026\u2026\u2026\u2026\u2026.. [\/\/]<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/7.png\" alt=\"BRTOOLS SSFS\" width=\"998\" height=\"628\" class=\"alignnone size-full wp-image-1601\" srcset=\"https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/7.png 998w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/7-300x189.png 300w, https:\/\/adilfahim.com\/myblog\/wp-content\/uploads\/2024\/07\/7-768x483.png 768w\" sizes=\"auto, (max-width: 998px) 100vw, 998px\" \/><\/p>\n<p>Click to Read &#8211; <a href=\"https:\/\/adilfahim.com\/myblog\/oracle-database-19c-enable-automatic-indexing\/\" target=\"_blank\" rel=\"noopener\">Oracle 19c Automatic Indexing<\/a><\/p>\n<h3>Commvault Configuration post BRTOOLS SSFS Changes<\/h3>\n<p>As Commvault use the default behavior while running the Oracle DB and Log backup by using \/ function hence this also need to be updated at Commvault side.<\/p>\n<p>Login to Commvault Configuration and select the impacted Oracle Database and select SSFS Connectivity.<\/p>\n<p><b>Recommendations<\/b><\/p>\n<p><b>For Cluster Databases<\/b><\/p>\n<p>Directory structure should be copied\u00a0$SAPDATA_HOME\/security\u00a0together with the files it contains from the primary server to secondary and DR server where BR*Tools is called.<\/p>\n<p><b>Caution 5<\/b><br \/>\nIf SAP Host Agent is active for the affected system. following the deletion of the OPS$ database users, it will attempt to connect to the database with the SYSDBA authorization. This can result in the extremely frequent creation of Oracle audit trace files (see SAP Note 2146596). These audit trace files are deleted by the BRCONNECT function &#8220;cleanup&#8221;. This should be executed regularly (for example, once a week) in this case. However, if you want to generally avoid the creation of Oracle audit trace files, the OPS$ database users should not be deleted.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you are still managing an SAP system with an Oracle database. If so, understanding how to configure\u00a0BRTOOLS SSFS\u00a0(Secure Storage in File System) is crucial. SSFS provides a secure way to store sensitive data such as database passwords. Let\u2019s dive into the key steps: Avoid using OPS$ mechanism, locking\/deleting OPS$ users Reference \u2013 1764043 &#8211; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[8],"tags":[47,1109,1107,1110,1108,1111],"class_list":["post-1593","post","type-post","status-publish","format-standard","hentry","category-sap-updates","tag-brconnect","tag-brtadm","tag-brtools-ssfs","tag-ops-mechanism","tag-oracle-ssfs","tag-rsecssfs"],"_links":{"self":[{"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/posts\/1593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/comments?post=1593"}],"version-history":[{"count":10,"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/posts\/1593\/revisions"}],"predecessor-version":[{"id":1628,"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/posts\/1593\/revisions\/1628"}],"wp:attachment":[{"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/media?parent=1593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/categories?post=1593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adilfahim.com\/myblog\/wp-json\/wp\/v2\/tags?post=1593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}