我正在尝试使用Oracle os用户身份验证。只要OS_AUTHENT_PREFIX的值没有保留大小写(Oracle默认将其存储为大写),它就可以正常工作。我的OS用户是XYZ,DB用户是OPS $ XYZ,所以它工作正常。
SQL> show parameter OS_AUTHENT_PREFIX;
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------
os_authent_prefix string OPS$
我想将此案例保留如下。
SQL> alter system set OS_AUTHENT_PREFIX="ops$" scope=spfile;
//shutdown and startup
SQL> show parameter OS_AUTHENT_PREFIX;
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------
os_authent_prefix string ops$
在这种情况下,我的数据库用户是"操作$ XYZ" (请参阅' ops $'是小写字母,与OS_AUTHENT_PREFIX相同。)
但是当我使用sqlplus进行连接时,"登录被拒绝"因为Oracle在大写字母前面加上前缀。请参阅审核日志:
SQL> select os_username,username from dba_audit_trail;
OS_USERNAME USERNAME
---------------------- -------------------------------------------------
XYZ OPS$XYZ
我在网上看到OS_AUTHENT_PREFIX在某些操作系统中区分大小写,我在哪里检查相同的?我不能使用区分大小写的用户进行操作系统用户身份验证吗?