初始化參數REMOTE_OS_AUTHENT用來控制是否允許遠端作業系統驗證。
預設情況下,資料庫只運行本機伺服器上的作業系統驗證:
SQL> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
------------------------------------------------------------------------------------
TESTRAC
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database10gEnterpriseEdition Release10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL> SHOW PARAMETER OS_AUTH
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix string ops$
本欄目更多精彩內容:http://www.bianceng.cn/database/Oracle/
remote_os_authent boolean FALSE
SQL> CREATE USER OPS$ORACLE IDENTIFIED EXTERNALLY;
使用者已建立。
SQL> GRANT CONNECT TO OPS$ORACLE;
授權成功。
SQL> HOST
$ sqlplus /
SQL*Plus: Release10.2.0.4.0 - Production on星期五9月17 00:13:25 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
串連到:
Oracle Database10gEnterprise Edition Release10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> SHOW USER
USER為"OPS$ORACLE"
建立了OPS$ORACLE使用者後,本地可以使用作業系統驗證方式登陸,但是遠端伺服器無法使用同樣的方法登陸:
[oracle@bjtest ~]$ sqlplus /nolog
SQL*Plus: Release11.2.0.1.0 Production on星期五9月17 08:53:57 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> SET SQLP 'SQL112> '
SQL112>CONN/@172.25.198.223/TESTRAC
ERROR:
ORA-01017: invalid username/password; logon denied
如果修改REMOTE_OS_AUTHENT參數:
SQL> EXIT
從Oracle Database10gEnterprise Edition Release10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options斷開
$ exit
SQL> ALTER SYSTEM SET REMOTE_OS_AUTHENT = TRUE SCOPE = SPFILE;
系統已更改。
SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。
已經卸載資料庫。
ORACLE常式已經關閉。
SQL> STARTUP
ORACLE常式已經啟動。
Total System Global Area 1258291200 bytes
Fixed Size 2040280 bytes
Variable Size 318774824 bytes
Database Buffers 922746880 bytes
Redo Buffers 14729216 bytes
資料庫裝載完畢。
資料庫已經開啟。
利用遠端伺服器再次嘗試作業系統驗證登陸:
SQL112> CONN /@172.25.198.223/TESTRAC
已串連。
SQL112> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
--------------------------------------------------------------------------------
TESTRAC
SQL112> HOST id
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
需要說明的是,這個參數開啟後,存在很大的安全隱患,遠端伺服器只要根據資料庫中存在的外部使用者來建立使用者,就可以登陸到資料庫中,因此除非必要,否則不建議開啟這個參數。