Oracle 密码文件


--==============================

-- Oracle 密码文件

--==============================

/*

一、密码文件

    作用:主要进行DBA权限的身份认证

    DBA用户:具有sysdbasysoper权限的用户被称为dba用户。默认情况下sysdba角色中存在sys用户,sysoper角色中存在system用户

   

二、Oracle的两种认证方式;

    1.使用与操作系统集成的身份验证

    2.使用Oracle数据库的密码文件进行身份认证

 

三、密码文件的位置

    Linux下的存放位置:$ORACLE_HOME/dbs/orapw$ORACLE_SID

                  即:ORACLE_HOME/dbs/orapw<sid>

    Windows下的存放位置:$ORACLE_HOME/database/orapw$ORACLE_SID

 

    密码文件查找的顺序

    --->orapw<sid>--->orapw--->Failure

 

    两种认证方式:类型与SQL server中的windows认证和SQL server认证

    决定在两个参数中

    1.remote_login_passwordfile = none | exclusive |shared  位于$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora参数文件中

       none : 不使用密码文件认证

       exclusive :要密码文件认证,自己独占使用(默认值)

       shared :要密码文件认证,不同实例dba用户可以共享密码文件

      

    2. $ORACLE_HOME/network/admin/sqlnet.ora 

       SQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)

       none : 表示关闭操作系统认证,只能密码认证

       all : 用于linuxunix平台,关闭本机密码文件认证,采用操作系统认证,但远程<异机>可以使用密码文件认证

       nts : 用于windows平台

      

    不同的组合

      1           2

    none          none      sys用户无论是本机还是远程均不可用

  

    判断当前使用的是操作系统认证还是密码认证

   

四、演示:

    1.sqlnet.ora 中追加SQLNET.AUTHENTICATION_SERVICES = none  */

    [oracle@robinson ~]$ sqlplus / as sysdba /*登陆失败*/

 

    SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 9 10:41:28 2010

 

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

    ERROR:

    ORA-01031: insufficient privileges

    Enter user-name:

    --------------------------------------------------------------------------------

    [oracle@robinson ~]$ sqlplus sys/RedHat as sysdba /*使用密码文件认证,登陆成功*/

 

    SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 9 10:42:35 2010

 

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

    Connected to:

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

 

    SQL>

    --=================================================================================

   

    2.SQLNET.AUTHENTICATION_SERVICES的值改为all

 

    [oracle@robinson admin]$ sqlplus / as sysdba /*采用本机认证可以登陆*/

 

    SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 9 10:46:55 2010

 

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

    Connected to:

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

 

    SQL>

    --------------------------------------------------------------------------------------

    [oracle@robinson admin]$ sqlplus sys/redhat@orcl as sysdba /*使用密码文件登陆认证失败*/

 

    SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 9 10:48:35 2010

 

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

    ERROR:

    ORA-12641: Authentication service failed to initialize

 

    Enter user-name:

 

    --注:此时可以使用远程登陆。 

 

    --使用#符号将新增的SQLNET.AUTHENTICATION_SERVICES行注释掉恢复到缺省值

 

    /*

  • 1
  • 2
  • 3
  • 下一页

相关内容