您在这里:首页 > 学员专区 > 技术文章
  • oracle全球副总裁Robert Green和亚太地区副总裁Damien Garey莅临CUUG参观视察工作!
  • Oracle视频
    Oracle
    CUUG课程

    oracle物理结构(五)--口令文件

     

    口令文件,即password file,用来对通过网络进行管理的用户进行认证。

    1、本地连接

    默认情况下,无论实例是否已启动,数据库服务器本地用户登录数据库需通过操作系统验证,即发起登录的操作系统用户是否属于oinstall组,是则允

    许登录,否则禁止,而与登录时使用的数据库用户及口令无关(错误的数据库用户及错误口令或空口令均允许登录)。注意, 操作系统验证仅对本地连

    接且已as sysdba身份登录才生效,若非as sysdba身份,则进行数据库验证。

    [root@station31~]#cat /etc/passwd | grep oracle

    oracle:x:500:501::/home/oracle:/bin/bash

    [root@station31~]#cat /etc/group | grep 501

    oinstall:x:501:

    sed –i 's/oinstall:x:501/oinstall:x:505/' /etc/group 更改oracle用户所属组ID

    #su - oracle

    $sqlplus /  as sysdba;                           无口令登录失败

    Perl –p –e 's/oinstall:x:505/oinstall:x:501/' /etc/group 撤消上述更改

    测试结果:

    操作系统验证本地实例启动:以as sysdba登录无口令或错误口令可登录,以普通用户登录需正确口令;

    实例关闭:只能以as sysdba登录可无口令或错误口令可登录,数据库没启动,数据库验证失效,普通用户无法登录。

    禁用操作系统验证本地实例启动:以as sysdba登录需正确口令。

    实例关闭:只能以as sysdba并以正确口令登录。

    禁用操作系统验证:

    vi $ORACLE_HOME/network/admin/sqlnet.ora

    SQLNET.AUTHENTICATION_SERVICES (NONE)

    添加上行,指定禁用操作系统验证,提高本地登录安全性。

    禁用OS验证后,本地登录将根据数据库口令文件参数的设置(默认生效)改用口令文件验证,默认口令文件为$ORACLE_HOME/dbs/orapw$ORACLE_SID默认

    其中已包含sys用户。

    SQL>show parameter remote_login_passwordfile;

    口令文件验证规则为:对于以sysdba身份登录的用户,使用口令文件进行验证,验证口令文件中是否包含该用户且口令文件中口令是否正确;对于以非

    sysdba身份登录的用户,则仍使用数据库验证,验证数据库中是否包含该用户且数据库中口令是否正确。

    2、网络连接

    默认情况下,无论实例是否启动,远程客户端用户登录数据库都需进行口令文件或数据库的验证,使用口令文件及验证规则与本地验证相同。

    例:$vi $ORACLE_HOME/network/admin/listener.ora

    SID_LIST_LISTENER

    (SID_LIST

    (SID_DESC

    (SID_NAME PLSExtProc)

    (ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1)

    (PROGRAM extproc)

    )

    (SID_DESC

    (GLOBAL_DBNAME ora10)

    (ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1)

    (SID_NAME ora10)

    )

    )

    LISTENER

    (DESCRIPTION_LIST

    (DESCRIPTION

    (ADDRESS (PROTOCOL TCP)(HOST 10.2.26.31)(PORT 1521))

    )

    )

    vim $ORACLE_HOME/network/admin/tnsnames.ora

    ORA10

    (DESCRIPTION

    (ADDRESS (PROTOCOL TCP)(HOST 10.2.26.31)(PORT 1521))

    (CONNECT_DATA

    (SERVER DEDICATED)

    (SERVICE_NAME ora10)

    )

    )

    LISTENER_ORA10

    (ADDRESS (PROTOCOL TCP)(HOST 10.2.26.31)(PORT 1521))

    EXTPROC_CONNECTION_DATA

    (DESCRIPTION

    (ADDRESS_LIST

    (ADDRESS (PROTOCOL IPC)(KEY EXTPROC2))

    )

    (CONNECT_DATA

    (SID PLSExtProc)

    (PRESENTATION RO)

    )

    )

    ?

    在listener.ora和tnsnames.ora配置文件中添加或修改实例和数据库名段。

    ·口令文件启用

    SQL>show parameter remote_login_passwordfile;   查看口令文件参数。

    NAME                                   TYPE         VALUE

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

    remote_login_passwordfile         string    EXCLUSIVE

    none:禁用口令文件验证,不允许通过网络进行DB管理,即使口令文件存在。

    exchlusize:启用口令文件验证,允许一个数据库使用口令文件进行验证 (默认)

    shared:共享口令文件验证,允许多个数据库使用口令文件进行验证

    ·口令文件生成

    $cd$ORACLE_HOME/dbs

    $orapwd file=orapw ora10 password=123456 entries=20 force=y

    orapwd参数含义(“”两边无空格):

    file:定义口令文件名称 (路径为$ORACLE_HOME/dbs/) (必需)

    password:SYS用户的口令 (必需)

    entries:允许在口令文件中添加到用户最大数量 (可选)

    force:是否覆盖原有口令文件 (可选)

    ·查看修改口令文件

    SQL>select * from v$pwfile_users; 查看口令文件中所有用户

    USERNAME                          SYSDBSYSOP

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

    SYS                             TRUE TRUE

    SQL>create user user01 identified by 123456;添加用户

    SQL> grant sysdba to user01;      赋sysdba权限后自动加入口令文件

    SQL>select * from v$pwfile_users;

    USERNAME                       SYSDBSYSOP

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

    SYS                              TRUE TRUE

    USER01                          TRUE FALSE

    SQL>revoke sysdba from user01; 从口令文件中删除用户

    ·删除口令文件 (禁用口令文件验证)

    SQL>alter system set remote_login_passwordfile=none scope=spfile;

    SQL>shutdown immediate;

    rm $ORACLE_HOME/dbs/orapwora10

    由上步测试可知,在禁用口令文件验证后,网络连接时将只有一种方式可以连入数据库,即在数据库启动情况下,仅允许普通用户以正确口令连入数据

    库,提高了网络连接的安全性,

    但同时大大降低了网络验证的可管理性,因其中关键性的“数据库关闭状态下以sysdba

    身份连入数据库”功能不能使用,从而使远程启动数据库功能不能实现,不利于从网络原创

    管理数据库,因此应该使用默认的启用口令文件验证模式。

    特别注意:

    若禁用了本地操作系统验证后,又禁用口令文件验证,则在数据库关闭后,将无法使用

    任何方法连入数据库再次重启实例,故不应将本地操作系统验证和口令文件验证同时禁用。

    相关文章 [上一篇] oracle物理结构(四)--归档日志文件
    010-56426307(59426319)
    CUUG热门培训课程
    Oracle DBA就业培训
    CUUG名师
    网络课程
    技术沙龙
    最新动态

    总机:(010)-56426307,59426319 QQ讨论群:243729577 182441349 邮箱:yuezt@cuug.com
    通信地址:北京市海淀区紫竹院路88号紫竹花园D座703(CUUG)邮政编码:100089 
    中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
    京ICP备11008061号