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用户密码。
7、spfile/pfile中remote_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认证,没有口令文件认证,这就是此参数的意义—口令文件验证的开关。
8、sqlnet.ora中SQLNET.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.ora中AUTHENTICATION_SERVICES参数;spfile/pfile中remote_login_passwordfile参数。并且这两个开关互不矛盾,可以同时打开同时关闭或者只开一个。
OS级认证是优先于口令文件认证的。
部分转自http://www.eygle.com/faq/passwordfile.htm,链接里的例子做了半天了,只能说理解了整个基本的流程,口令文件的原理,实验做了我半天,最后把我本机ORACLE都弄死了,打开任务管理器杀掉进程重新启动才OK的,,,有所收获,,,继续的我DBA入门之路..
相关推荐
Oracle手工創建資料庫(10g+11g)
使用orapwd 重置SYS密码 C:oracleproduct10.2.0db_1database>orapwd Usage: orapwd file=<fname> password=<password> entries=<users> force=<y> C:oracleproduct10.2.0db_1database>orapwd fi
忘记了oracle密码,可以使用orapwd 初始化sys密码;然后再修改其他帐户密码,还有就是破解。
如果不执行这步,执行 orapwd 命令,会抛出 “OPW-00005: 存在同名文件 – 请删除或重命名” 错误。 接着在该目录下,执行以下 orapwd 命令,形如: F:\app\Administrator\product\12.1.0\dbhome
OCM核心内参(OCM考试题库).pdf 、考试题库及讲解 (一) Section0:创建数据库(即于动建斥)【在db机操作】 1、手动建库 1)确定实例名。 export ORACLE SID=test ...orapwd file-orapwtest password=oracle 3)建立 filed
deinst、orapwd、orastack、oravssw、orion、ott、plshprof、proc、racgeut、racgimon、racgmain、racgmdb、rawutl、RemoteExecService、renamedg、rman、sbttest、schema、sclsspawn、sqlldr、sqlplus、tkprof、...
重建密码⽂件(先删除掉原来的⽂件) D:/>orapwd file=d:/oracle/ora92/DATABASE/PWDtest.ORA password=SYS entries=10 OPW-00005: 存在相同名称的⽂件 - 请删除或重命名 D:/>orapwd file=d:/oracle/ora92/DATABASE/...
orapwd file=$ORACLE_HOME/dbs/orapwnewdb password=oracle1 entries=3 2. 为辅助数据库创建临时参数文件 好从目标数据库创建然后复制过去(前提是有相同的内存大小),以下参数有必要多确认 DB_NAME=...
orapwd file=C:\app\PWDorcl.ora password=orclorcl C:\app\PWDorcl.ora是你要存放的路径文件 Password=orclorcl是你要改的密码 然后回车,在该路径下就会生成一个文件。把这文件替换你本机oracl的密码文件。Sys和...
Oracle的外部数据包装器 oracle_fdw是PostgreSQL扩展,提供了Foreign Data Wrapper,可以轻松,高效地访问Oracle数据库,包括下推WHERE条件和所需的列以及全面的EXPLAIN支持。... sqlplus orauser/orapwd@//dbs
cd $ORACLE_HOME/dbs cp initorcl.ora initorcl.ora #复制⼀个原有的ora⽂件 vim initorcl.ora #修改为响应信息 ORACLE_BASE要改为绝对路径 不然会报错 3、创建密码⽂件 orapwd file=$ORACLE_BASE/product/10.2.0/db...
cd $ORACLE_HOME/dbs cp initorcl.ora initorcl.ora #复制⼀个原有的ora⽂件 vim initorcl.ora #修改为响应信息 ORACLE_BASE要改为绝对路径 不然会报错 3、创建密码⽂件 orapwd file=$ORACLE_BASE/product/10.2.0/db...
详细讲述了Oracle数据库口令文件的作用、创建以及使用。
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal ...
orapwd file=E:\app\oracle\product\11.1.0\db_1\database\pwdmydb.ora password=ora entries=5; 5、启动实例: set oracle_sid=mydb sqlplus/nolog conn sys/mydb as sysdba startup nomount pfile='E:\\...