orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDoralocal.ora password=maximo entries=10;
而後咱們要把$ORACLE_HOME/network/admin/sqlnet.ora中設置:
SQLNET.AUTHENTICATION_SERVICES= none
注意一下,密碼文件只在數據庫啓動的時候加載進去,一旦加載進去,密碼文件就脫離了oracle管理,因此咱們用orapwd新建密碼文件後,裏面指定的密碼要在數據重啓後才能生效:
至此,咱們已經實現不用os認證(sqlplus 「/ as sysdba」的方式登陸不了)。那麼咱們怎麼限制網絡方面利用sysdba遠程登陸呢?咱們能夠設置初始化文件中的REMOTE_LOGIN_PASSWORDFILE=none。
注意,當REMOTE_LOGIN_PASSWORDFILE=none時,這個參數生效須要重啓數據庫,而且,一旦啓用這個參數,將使用操做系統認證,不使用口令文件。所以若是REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none這個時候數據庫是沒法登陸的。
alter system set REMOTE_LOGIN_PASSWORDFILE=none scope=spfile;
(1)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none:
oracle安裝用戶本地sqlplus 「/ as sysdba」沒法登陸
非oracle安裝用戶本機sqlplus 「sys/change_on_install as sysdba」沒法登陸
非oracle安裝用戶遠程sqlplus 「/ as
sysdba_on_install@sid as sysdba」沒法登陸
(2)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= none:
oracle安裝用戶本地sqlplus 「/ as sysdba」沒法登陸
非oracle安裝用戶本機sqlplus 「sys/change_on_install as sysdba」能登陸
非oracle安裝用戶遠程sqlplus 「/ as
sysdba_on_install@sid as sysdba」能登陸
(3)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= (NTS):
oracle安裝用戶本地sqlplus 「/ as sysdba」能登陸
非oracle安裝用戶本機sqlplus 「sys/change_on_install as sysdba」沒法登陸
非oracle安裝用戶遠程sqlplus 「/ as
sysdba_on_install@sid as sysdba」沒法登陸
(4)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= (NTS):
oracle安裝用戶本地sqlplus 「/ as sysdba」能登陸
非oracle安裝用戶本機sqlplus 「sys/change_on_install as sysdba」能登陸
非oracle安裝用戶遠程sqlplus 「/ as
sysdba_on_install@sid as sysdba」能登陸