`
hougbin
  • 浏览: 502425 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

oracle orapwd介绍

阅读更多

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级认证是优先于口令文件认证的。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/java3344520/archive/2010/06/15/5672242.aspx

分享到:
评论

相关推荐

    oracle密码文件详细说明.pdf

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

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

    Oracle数据库系统中,orapwd工具是用来创建和维护口令文件的,这个口令文件对于数据库的启动、远程管理和备份等操作至关重要。在Oracle数据库中,有两类内置用户,一类是在数据库正常启动后,可以使用数据库认证的...

    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

    oracle10 for linux 安装

    在本教程中,我们将详细介绍如何在Red Hat 4操作系统上安装Oracle 10g数据库。首先,确保你的系统满足最低的硬件和软件需求,这里提到的是Redhat Enterprise Server AS 4 Update 8(32-bit x86)以及内核版本2.6.9-5...

    修改oracle_sid和db_name名字

    在本文中,我们将详细介绍如何修改 Oracle_sid 和 db_name 名字。 修改 Oracle_sid Oracle_sid 是数据库实例名,用于标识数据库实例。在 Linux 平台下,修改 Oracle_sid 的步骤如下: 1. 修改 `/home/oracle/....

    linux下oracle创建实例总结

    orapwd file=$ORACLE_HOME/dbs/orapwusdb password=admin entries=5 force=y ``` 其中: - `file`:密码文件的存放路径。 - `password`:管理用户的密码。 - `entries`:可以连接到数据库的最大并发用户数。 - `...

    Linux 下手动创建oracle数据库

    本文将详细介绍在Linux环境下手动创建Oracle 10g数据库的具体步骤及注意事项。 **1. 设置ORACLE_SID环境变量** - **作用**: `ORACLE_SID` 是Oracle服务标识符(service identifier),用于指定Oracle实例的名称。 ...

    Oracle默认密码及修改密码.docx

    orapwd file=d:\oracle\database\pwdetalker.ora password=newpass entries=10 force=y; ``` 这将创建一个新的口令文件,其中`newpass`是新的密码,`entries`指定了允许的最大用户数,`force=y`表示即使有旧的口令...

    Oracle手工配置手册

    以上内容详细介绍了Oracle数据库的手工配置过程,涵盖了从环境变量配置到数据库创建和服务配置的各个方面。这些步骤对于那些希望深入了解Oracle数据库底层配置细节的技术人员来说非常重要。通过遵循这些指导原则,...

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

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

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

    在本文中,我们将详细介绍如何找回 Oracle 中 system,sys 用户的密码。 一、使用 SQL*Plus 连接数据库 首先,我们可以使用 SQL*Plus 工具连接到 Oracle 数据库,作为 sysdba 用户登录。命令如下: ``` SQL&gt;connect...

    oracle手工创建数据库完整步骤

    本文将详细介绍如何在Windows 2000 Server环境下手动创建一个Oracle 9i数据库的完整步骤。这不仅适用于学习Oracle数据库的基础操作,也适合于那些希望深入了解数据库底层机制的技术人员。 #### 二、系统环境与准备...

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

    本文将详细介绍在Windows 7操作系统下以及Linux环境下手工创建Oracle 10g和11g数据库的步骤,并提供详细的实践指导。 #### 二、Windows 7环境下创建Oracle数据库 ##### 2.1 实验环境 - **操作系统**: Windows 7 64...

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

    针对这种情况,本文将详细介绍如何解决Oracle Database 10g中忘记管理员用户口令的问题。 #### 一、理解Oracle Database 10g中的管理员用户 在Oracle Database 10g中,主要的管理员用户是`SYS`和`SYSTEM`。其中,`...

    Windows Server 2016 Oracle 12C安装连接的若干问题处置方法

    本文将详细介绍如何解决低版本客户端无法连接数据库、远程登录Oracle 12C的sys和system用户时报错等问题,并提供用户创建与授权的具体步骤。 #### 二、低版本客户端连接问题 对于使用Oracle 11c及以下版本客户端...

    oracle sysdba 密码解释

    本文详细介绍了Oracle数据库中`SYSDBA`密码机制的核心概念,包括`SYSDBA`权限的含义、远程登录密码文件的配置与管理、`SYS`用户的特殊地位以及如何授予其他用户`SYSDBA`权限等内容。理解这些概念对于Oracle数据库...

    oracle817手工建库文档

    D:\Oracle\Ora81\bin\orapwd file=D:\Oracle\Ora81\DATABASE\PWDtest.ora password=ORACLE entries=5 ``` 这里指定了密码文件的路径、密码以及最大登录用户数。 #### SID实例配置 使用 `oradim.exe` 来创建一个新...

    oracle10g手动创建实例

    4. **创建密码文件**:在`dbs`目录下执行`orapwd file=$ORACLE_BASE/product/10.2.0/db_1/dbs/orapwdbxq password=yourpwd entries=5 force=y`,注意替换`yourpwd`为你设定的密码。 5. **复制并修改参数文件**:在`...

    Oracle手动创建数据库步骤

    最后一步是创建口令文件,这一步骤使用`orapwd`命令完成。口令文件用于存储数据库管理员的密码,以便后续登录数据库。 ### 四、总结 通过上述步骤,我们可以手动创建一个Oracle数据库实例。尽管这种方式不如使用...

Global site tag (gtag.js) - Google Analytics