`

Orapwd 初步认识 (转)

 
阅读更多

 

Orapwd 初步认识

今天看到DBA常用工具里有个orapwd,初次相识.在CMD里输入命令如下:

C:/Documents and Settings/Administrator>orapwd
    Usage: orapwd file=<fname> password=<password> entries=<users>

    where
    file - name of password file (mand),
    password - password for SYS (mand),
    entries - maximum number of distinct DBA and OPERs (opt),
   There are no spaces around the equal-to (=) character.

 

 

 

例如:D:/oracle/ora92/database>orapwd file=orcl.ora password=orclsys entries=2
 
其中参数entries的含义是表示口令文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数,如果用户数超过这个值只能重建口令文件,增大entries。
file后面可以指定口令文件的全路径和文件名,否则创建在当前目录下。
 
windows下oracle默认的位置是ora92/database目录,默认的文件名是pwdSID.ora,对于别的文件名是不认的。linux下oracle默认的位置是$ORACLE_HOME/dbs目录,默认的文件名是orapwSID,对于别的文件名是不认的。

 

 

1  为什么需要口令文件?

在数据库没有启动之前,数据库内建用户是无法通过数据库来验证身份的.
口令文件中存放sysdba/sysoper用户的用户名及口令,允许用户通过口令文件验证,在数据库未启动之前登陆,从而启动数据库
如果没有口令文件,在数据库未启动之前就只能通过操作系统认证.
使用Rman,很多时候需要在nomount,mount等状态对数据库进行处理
所以通常要求sysdba权限如果属于本地DBA组,可以通过操作系统认证登陆
如果是远程sysdba登陆,需要通过passwordfile认证.

 

2、口令文件损坏或者丢失怎么办?

口令文件就是sysdba/sysoper用户的唯一口令文件,丢了就进不来,不管数据库启动没有。连接报错...

SQL> connect sys/oracle@fzlgfm as sysdba
ERROR:
ORA-01031: insufficient privileges

 

只能用操作系统级权限验证登陆,即oracle/oracle登陆,然后orapwd重建口令文件:

orapwd file=orcl.ora password=orclsys entries=2

Orapwd命令第二个参数是指定sys的密码,参数等于什么,sys密码以后就是什么。为什么要指定sys密码?因为口令文件里面必须要有用户密码,否则怎么验证啊?但此时数据库如果没启动的话就根本取不到sys密码,所以只能强行指定了,启动后数据库里面sys的密码会被改成此时指定的。另外重建口令文件的工作只能由系统验证用户完成,或者具有dba权限的用户也可以,其他用户执行orapwd命令都会失败。

 

3、如何把sysdba/sysoper用户加到口令文件中去?

再执行一遍grant sysdba/sysoper to  用户 ,oracle会自动在口令文件中增加一个条目,并且把密码copy过来。察看口令文件内容的方法:select * from v$pwfile_users;

SQL> grant sysdba to scott;

Grant succeeded

SQL> select * from v$pwfile_users;

USERNAME             SYSDBA SYSOPER
---------------                -------        -------
SYS                            TRUE      TRUE
SCOTT                      TRUE       FALSE

 

 

4、没有口令文件是否可以启动数据库?

可以,9i及以下mount过程中会报错,然后手动open就可以了。因为只要用本地验证用户照样可以做sysdba的事情,没有理由让数据库启动不了。10g已经不会报错了。

 

5、没有口令文件为什么是mount阶段报错而不是nomount阶段报错?

因为只有到了alter mount阶段才验证各种文件,nomount只读spfile/pfile创建进程。

 

6、修改sysdba/sysoper用户密码时,能否同步到口令文件?

可以同步。Alter user xxx identified by yyy.

所有密码忘记都没关系,但至少要记住sys用户密码。

 

7spfile/pfileremote_login_passwordfile是干嘛用的?

三种设定模式:可以通过show parameter pass命令查看当前模式

remote_login_passwordfile = EXCLUSIVE,则一个实例专用;

remote_login_passwordfile = SHARE则可以多个实例共享(用于OPS/RAC环境);

remote_login_passwordfile = NONE则不启用口令文件,此时任何sysdba/sysoper都无法连接进来。

 

remote_login_passwordfile = shared

我们看一下Oracle9i文档中的说明:

More than one database can use a password file. However, the only user recognized by the password file is SYS.

意思是说多个数据库可以共享一个口令文件,但是只可以识别一个用户:SYS

 

在用SPFILE的情况下,remote_login_passwordfile参数怎么改呢?SPFILE是不可以强行编辑的,否则数据库不认的。用alter system set remote_login_passwordfile=none scope=spfile.

改成NONE以后怎么改回来呢?

os级认证登陆,然后alter system set remote_login_passwordfile=none scope=spfile,或者直接create spfile from pfile;

remote_login_passwordfile=none’意味着禁用口令文件,有也不能用。等于可以disable所有sysdba/sysoper,此时只能用oracle/oracle用户来启动和关闭数据库,也就是只有os认证,没有口令文件认证,这就是此参数的意义—口令文件验证的开关。

 

8sqlnet.oraSQLNET.AUTHENTICATION_SERVICES=(NTS/NONE)有什么用?

NTS=NT Security  即采用OS优先认证登陆,NONE为不可以,必须采用usr/pwd as sysdba/sysoper 登陆。这里是操作系统级验证的开关。如果SQLNET.AUTHENTICATION_SERVICES=(NONE)并且remote_login_passwordfile=none’,即两个开关都关闭,那么神仙也进不了数据库,hoho…我指的是sysdba/sysoper用户,普通用户可以照常使用的。当然,有物理权限的人也除外,即你可以物理地打开这台计算机操作。

 

总结一下,ORACLE有两种方式可以认证sysdba/sysoper用户:操作系统级认证—dba权限组(linux/unix)和ORA_DBA组(win);口令文件认证。

两种方式有各自的开关:sqlnet.oraAUTHENTICATION_SERVICES参数;spfile/pfileremote_login_passwordfile参数。并且这两个开关互不矛盾,可以同时打开同时关闭或者只开一个。

OS级认证是优先于口令文件认证的。

 

部分转自http://www.eygle.com/faq/passwordfile.htm,链接里的例子做了半天了,只能说理解了整个基本的流程,口令文件的原理,实验做了我半天,最后把我本机ORACLE都弄死了,打开任务管理器杀掉进程重新启动才OK的,,,有所收获,,,继续的我DBA入门之路..

 

分享到:
评论

相关推荐

    Oracle中password file orapwd的作用及说明.docx

    oracle11g10g安装备份基础维护

    oracle密码文件详细说明.pdf

    [oracle@robinson dbs]$ orapwd file=orapworcl password=oracle force=y 然后,可以使用 sqlplus 连接数据库: [oracle@robinson dbs]$ sqlplus sys/oracle@orclas sysdba 这将连接到数据库,并且使用密码文件...

    Oracle手工創建資料庫(10g+11g)

    orapwd file=orapwocm entries=5 ignorecase=N ``` - **说明**: 生成密码文件用于数据库管理用户的身份验证。 ##### 3.4 创建初始化参数文件 - **文件**: `init&lt;sid&gt;.ora`,其中 `&lt;sid&gt;` 替换为你设置的SID值。 -...

    oracle 重置sys密码的方法介绍

    使用orapwd 重置SYS密码 C:oracleproduct10.2.0db_1database&gt;orapwd Usage: orapwd file=&lt;fname&gt; password=&lt;password&gt; entries=&lt;users&gt; force=&lt;y&gt; C:oracleproduct10.2.0db_1database&gt;orapwd fi

    如何找回Oracle中system,sys用户的密码

    这些方法包括使用 SQL*Plus 连接数据库、使用操作系统认证连接数据库、使用 sqlplus 命令行工具、使用 orapwd 命令和使用 su 命令。这些方法可以帮助您快速找回 Oracle 系统用户密码,并恢复数据库的正常使用。

    如果忘记了Oracle Database 10g 管理员用户口令怎么办

    - 转到“安全”菜单下的“用户”选项。 - 选择需要重置口令的用户,点击“重置密码”。 #### 三、预防措施 为了避免忘记管理员用户口令带来的问题,建议采取以下预防措施: - **定期更改口令**:定期更换管理员...

    远程登录并启动oracle数据库 解决ORA-01031

    orapwd file=%ORACLE_HOME%\database\PWDsid_name.ora password=password_for_sys ``` 2. **开启密码方式的用户认证**: - 修改`initservice_name.ora`文件(Unix/Linux)或`init.ora`文件(Windows),加入以下...

    ocp学习资料

    - 使用ORAPWD工具:ORAPWD是一个命令行工具,用于创建和更新密码文件。例如,`orapwd FILE=acct.pwd PASSWORD=secret ENTRIES=30` 将创建一个名为'acct.pwd'的密码文件,设定密码为'secret',并允许最多30个用户的...

    ops_SIMD_win32

    忘记了oracle密码,可以使用orapwd 初始化sys密码;然后再修改其他帐户密码,还有就是破解。

    oracle数据库sys密码修改

    orapwd file=D:/oracle/product/10.2.0/db_1/database/pwdctcsys.ora password=new_pass entries=5 ignorecase=yes ``` 其中,`D:/oracle/product/10.2.0/db_1/database/pwdctcsys.ora`是新口令文件的路径,`new_...

    oracle学习总结.docx

    执行`orapwd`命令,如`orapwd password=oracle file=D:\oracle\product\10.2.0\db_1\database\PWDtest.ora`,这允许sys用户用指定的密码登录。 3. **创建目录**: 创建用于存放数据库文件、后台转储、核心转储以及...

    Oracle 管理员账号密码忘记的快速解决方法

    如果不执行这步,执行 orapwd 命令,会抛出 “OPW-00005: 存在同名文件 – 请删除或重命名” 错误。 接着在该目录下,执行以下 orapwd 命令,形如: F:\app\Administrator\product\12.1.0\dbhome

    在操作系统损坏时恢复Oracle10g全过程

    例如:`orapwd file=$ORACLE_HOME/dbs/orapwd.ora password=oracle`。 10. **再次尝试挂载数据库**:现在,使用新创建的口令文件再次尝试`alter database mount`。如果一切顺利,数据库应能成功挂载。 11. **打开...

    oracle10g dataguard配置

    以上步骤为配置Oracle 10g DataGuard的初步准备,确保了主数据库能够正确生成归档日志,为后续的复制和同步操作奠定了基础。接下来,将涉及备用数据库的配置、网络连接的测试以及最终的保护模式选择等环节。在整个...

    oralce密码忘了解决方法

    orapwd file=$ORACLE_HOME/dbs/PWD&lt;sid&gt;.ora password=&lt;password&gt; entries= ``` 2. **独占密码文件**:独占密码文件只能由一个数据库实例使用,并且只允许指定数量的用户拥有`SYSDBA`权限。 - 创建命令: ```...

    数据库ADG实施手册范本.doc

    否则,使用`orapwd`命令创建。 6. 根据主库的SPFILE创建PFILE,确保参数一致性。 7. 提供RAC的VIP或SCANIP,以便配置`tnsnames.ora`。 8. 主备库的数据库版本必须是相同的大版本,小版本允许一定差异。 9. 操作系统...

    忘记oracle的sys用户密码处理办法

    orapwd file=D:\oracle\product\10.2.0\db_1\database\pwdctcsys.orapassword=newpass 这个命令重新生成了数据库的密码文件,密码文件的位置在 ORACLE_HOME 目录下的\database 目录下。这个密码是修改 sys 用户的...

    Oracle数据库system用户忘记了密码怎么办?.

    #### 方法五:使用orapwd命令 1. **运行orapwd命令**:通过执行`orapwd file='/oracle/pwdsid.ora' password=123456`命令,可以创建一个包含密码的文件,用于数据库的密码管理。即使忘记了Oracle密码,也可以通过这...

Global site tag (gtag.js) - Google Analytics