一、SYS用户验证 1. 操作系统验证 对于在安装Oracle的本机上使用Oracle的情况,Oracle可以将用户验证交给操作系统,只要登录操作系统的用户在DBA组里,就有SYS用户的权限,可以修改 $ORACLE_HOME/dbs/sqlnet.ora,加入如下行: SQLNET.AUTHENTICATION_SERVICES= (NTS) 操作系统验证具有最高优先级,当设置为它时,密码文件验证不起作用 2. 密码文件验证 要使用密码文件验证,首先得禁用操作系统验证,修改 $ORACLE_HOME/network/admin/sqlnet.ora,加入如下行(这里将$ORACLE_HOME转化为绝对路径): SQLNET.AUTHENTICATION_SERVICES= (NONE) 其次是设置密码验证配置参数:remote_login_passwordfile,它可以有几个值,其含义如下 none: 不使用密码验证 exclusive: 仅允许一个实例使用该密码文件 shared: 多个实例可以共用一个密码文件 现在将参数设置为独占: alter system set remote_login_passwordfile=exclusive scope=spfile; shutdown immediate 使用密码实用程序生成密码文件 orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=sys(这里把sys用户的密码设置为sys) 此时尝试以不同方式登录数据库 $ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Nov 4 12:52:07 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. ERROR: ORA-01031: insufficient privileges 如果使用下面的方式登录方式,即能正常登录: sqlplus sys/sys as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Nov 4 13:20:06 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to an idle instance.