Question:
What is the reason behind the usage of '_ORACLE_SCRIPT=true' parameter in createDevices.sql script for AAI? Is it required to have it set at all?
Product: Automic Automation Intelligence
Release : any
N/A
Unless this value is set, in Oracle 12+, which introduced container databases, you need to specify user names that start with C##. By setting the ORACLE_SCRIPT session variable (temporarily, only for our operations), AAI is able to create more globally compatible user names in Oracle. If the DBA wants to create tablespaces, users, and permissions by another, site-specific method, it is not strictly required that ORACLE_SCRIPT be set to true.
_ORACLE_SCRIPT is only set to make the script universal instead of requiring site-specific modifications or unusual/unpredictable requirements like the prefix (default is C##, but can be changed if needed).
The DBA can create the user with the C## prefix (or another prefix as described in the referenced document with a site-specific prefix, which we can not know in advance) for Oracle 12c+, and omit the ORACLE_SCRIPT=true directive.
One example is that DBAs often do not want to GRANT DBA to the AAI user so that part is modified. The generated scripts do this for convenience and the fact that it will always work across versions of Oracle we support.