Oracle登陆验证与密码文件

    技术2024-08-03  61

    1,为什么oracle可以不使用sys密码的前提下以sysdba身份登陆(sqlplus / as sysdba),因为oracle安装时,在本地建立了ora_dba权限组,并将操作系统用户加入了该组,另外,%ORACLE_HOME%/db_1/NETWORK/ADMIN/sqlnet.ora中,对能否进行操作系统验进行了如下定义:

     

    操作系统验证有

    SQLNET.AUTHENTICATION_SERVICES= (NTS)

    操作系统验证无

    SQLNET.AUTHENTICATION_SERVICES= (NONE)

     

    设置为操作系统验证有的场合,可以任何用户进行as sysdba登陆,哪怕用户是不存在的。而且使用show user命令时,显示的都是SYS。

    设置为操作系统验证无的场合,只有密码文件中存在的用户才能进行as sysdba登陆。

    密码文件位置:%ORACLE_HOME%/db_1/database/ PWD%SID%.ora

     

    查询密码文件中的用户:select * from v$pwfile_users;

     

    追加用户到密码文件或从密码文件中删除指定用户:

    GRANT  {SYSDBA | SYSOPER} TO scott;

    REVOKE {SYSDBA | SYSOPER} FROM scott;

     

    另外%ORACLE_HOME%/admin/%SID%/pfile/init.ora中,

    有关于REMOTE_LOGIN_PASSWORDFILE的密码文件的使用设置。

    REMOTE_LOGIN_PASSWORDFILE = { SHARED | EXCLUSIVE | NONE }

     

    EXCLUSIVE:默认值,只有一个数据库可以使用这个口令文件。在这种模式下,口令文件可以包含SYS和SYS以外的多个特许的Oracle账户的口令。

    SHARED:多个数据库可以使用相同的口令文件。这种模式不能追加其他用户到密码文件中,也不能修改现有密码文件中的口令。可以在EXCLUSIVE追加用户或修改口令,再切换成为SHARED模式。

    NONE参数:Oracle会忽略口令文件,只能以操作系统用户进行sysdba访问登录。

     

    注意:当设定为EXCLUSIVE或SHARED模式时,如果密码文件不存在,与设定为NONE结果相同。

     

    2,密码文件的创建

    ORAPWD FILE=filename PASSWORD=<password> [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}]

     

    FILE:口令文件名称PWD%SID%.ora。

    PASSWORD:sys用户的口令。

    ENTRIES:设定密码文件中Oracle用户帐户的最大数量。

    FORCE:如果存在同名的密码文件,是否进行覆盖。

    IGNORECASE:是否区别密码大小写。(Oracle11g有效)

     

    疑问:有多个密码文件时,设定REMOTE_LOGIN_PASSWORDFILE=SHARED,会使用哪个密码文件?

     

    最新回复(0)