ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 口令文件二则

口令文件二则

原创 Linux操作系统 作者:hongww 时间:2010-08-03 16:19:34 0 删除 编辑

被授予SYSDBA/SYSOPER权即添加入口令文件。

Oracle口令文件是为了使特权用户能登录到数据库而存在的,这里的特权用户是INTERNAL/SYSDBA/SYSOPER

l   Internal的意思为本地管理员,可以完成数据库的启动、关闭、修改以及其他DBA事务。 在Oracle 7及其前版本中,Internal只能在本地登录(这也是叫作本地管理员的起源),也无须口令;到Oracle 8时,Internal用户允许远程登录,并开始淘汰Internal概念,伴随Internal用户的另一个概念Svrmgrl(之前版本具有最高管理权限的工具)也开始淡化,取而代之的是sys用户,其系统角色包括Normal、Sysdba、Sysoper(只能启动、关闭数据库,不能修改数据库),此时Internal用户相当于sys as sysdba。 到Oracle 9i时,正式淘汰Internal和Svrmgrl,取而代之的是sys和sqlplus,DBA可以在sqlplus中完成所有事务,至此sys加sqlplus经历一番过渡正式一统天下。

l   Sysdba具有控制Oracle一切行为的特权

1.      口令文件创建:

Orapwd file= PASSWORD= ENTRIES=

ENTRIES是可以被超越的,具体是几取决于OS的block,网络上曾有人做过这方面的测试。将entries 设置为5,而向授权一百个用户,结果是v$pwfile_users中显示了9个用户。

要允许远程管理员sys登录数据库,则要求设置

remote_login_passwordfile = exclusive

然后创建passowrd file:

orapwd file=orapw$ORACLE_SID passwd=passwd entries=10 force=y

需要注意的是这里的password file文件命名需要符合特定的这个格式,如果命名不对(不同的OS系统,对于命名是不一样的),系统将会找不到这个密码文件,而产生:

SQL> grant sysdba to sys;

grant sysdba to sys

*

ERROR at line 1:

ORA-01994: GRANT failed: password file missing or disabled

上面这个错误。也就导致了sysdba或者管理员用户不能远程登录数据库。

要检查是否已经将sys用户放入密码文件,可以查询:

SQL> select * from v$pwfile_users;

USERNAME        SYSDBA          SYSOPER

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

SYS              TRUE                TRUE

总结:

sqlnet.ora里面的SQLNET.AUTHENTICATION_SERVICES参数是用于本机sysdba或者

其他管理员用户登录的。

而remote_login_passwordfile及对应的passwordfile是用于远程sysdba或者其他管理员登录的,两者是独立的。

2.      口令文件的作用

在10g之前,启动到MOUNT状态,数据库需要具备另一个重要文件是口令文件,位于$ORACLE_HOME/database&/dbs目录下。里面存放着SYSDBA/SYSOPER用户名及口令。远程用户使用口令文件才能以SYSDBA/SYSOPER身份登录。

在9I中,口令文件在mount阶段被检测。如果丢失了,会报错,本机的OS登录可以继续打开数据库,但远程的SYSDBA登录,或是SYSDBA授权都将无法进行。可以用orapwd重建一个。

10g以后不会报错了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24355950/viewspace-670109/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 控制文件信息
请登录后发表评论 登录
全部评论

注册时间:2010-07-29

  • 博文量
    11
  • 访问量
    10674