--==============================
-- Oracle
密码文件
--==============================
/*
一、密码文件
作用:主要进行DBA权限的身份认证
DBA用户:具有sysdba,sysoper权限的用户被称为dba用户。默认情况下sysdba角色中存在sys用户,sysoper角色中存在system用户
二、Oracle的两种认证方式;
1.使用与操作系统集成的身份验证
2.使用Oracle数据库的密码文件进行身份认证
三、密码文件的位置
Linux下的存放位置:$ORACLE_HOME/dbs/orapw$ORACLE_SID
即:ORACLE_HOME/dbs/orapw<sid>
Windows下的存放位置:$ORACLE_HOME/database/PW%ORACLE_SID%.ora
密码文件查找的顺序
--->orapw<sid>--->orapw--->Failure
两种认证方式:类型与SQL server中的windows认证和SQL
server认证
决定在两个参数中
1.remote_login_passwordfile = none | exclusive |shared
位于$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora参数文件中
none : 不使用密码文件认证
exclusive :要密码文件认证,自己独占使用(默认值)
shared :要密码文件认证,不同实例dba用户可以共享密码文件
2. $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)
none : 表示关闭操作系统认证,只能密码认证
all : 用于linux或unix平台,关闭本机密码文件认证,采用操作系统认证,但远程<异机>可以使用密码文件认证
nts : 用于windows平台
不同的组合
1 2
none none sys用户无论是本机还是远程均不可用
判断当前使用的是操作系统认证还是密码认证
四、演示:
1.在sqlnet.ora
中追加SQLNET.AUTHENTICATION_SERVICES = none
*/
[oracle@robinson ~]$ sqlplus /
as sysdba /*登陆失败*/
SQL*Plus: Release 10.2.0.1.0
- Production on Fri Apr 9 10:41:28 2010
Copyright (c) 1982, 2005, Oracle.
All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
--------------------------------------------------------------------------------
[oracle@robinson ~]$ sqlplus sys/redhat
as sysdba /*使用密码文件认证,登陆成功*/
SQL*Plus: Release 10.2.0.1.0
- Production on Fri Apr 9 10:42:35 2010
Copyright (c) 1982, 2005, Oracle.
All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
- Production
With the Partitioning, OLAP
and Data Mining options
SQL>
--=================================================================================
2.将SQLNET.AUTHENTICATION_SERVICES的值改为all
[oracle@robinson admin]$ sqlplus /
as sysdba /*采用本机认证可以登陆*/
SQL*Plus: Release 10.2.0.1.0
- Production on Fri Apr 9 10:46:55 2010
Copyright (c) 1982, 2005, Oracle.
All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
- Production
With the Partitioning, OLAP
and Data Mining options
SQL>
--------------------------------------------------------------------------------------
[oracle@robinson admin]$ sqlplus sys/redhat@orcl
as sysdba /*使用密码文件登陆认证失败*/
SQL*Plus: Release 10.2.0.1.0
- Production on Fri Apr 9 10:48:35 2010
Copyright (c) 1982, 2005, Oracle.
All rights reserved.
ERROR:
ORA-12641: Authentication
service failed to initialize
Enter user-name:
--注:此时可以使用远程登陆。
--使用#符号将新增的SQLNET.AUTHENTICATION_SERVICES行注释掉恢复到缺省值
/*
五、密码文件的建立:orapwd
*/
[oracle@robinson ~]$ orapwd
Usage: orapwd file=<fname> password=<password> entries=<users>
force=<y/n>
where
file -
name of password
file (mand),
/*密码文件的名字orapw<sid>*/
password - password
for SYS (mand),
/*sys用户的密码*/
entries - maximum number
of distinct DBA and
/*可以有多少个sysdba,sysoper权限用户放到密码文件中去,去掉重复记录*/
/*注意entries中存放的个数但不是实际个数,这个是二进制数据*/
force - whether to overwrite existing
file (opt),
/*10g新增的参数,默认值为n ,y表示允许覆盖*/
OPERs (opt),
There are no spaces around the equal-to
(=) character.
--修改密码:
[oracle@robinson ~]$ cd $ORACLE_HOME/dbs
[oracle@robinson dbs]$ ll orapworcl
-rw-r----- 1 oracle oinstall 1536 Apr
7 15:50 orapworcl
[oracle@robinson dbs]$ orapwd file=orapworcl password=oracle force=y
[oracle@robinson dbs]$ sqlplus sys/oracle@orcl
as sysdba
SQL*Plus: Release 10.2.0.1.0
- Production on Fri Apr 9 11:34:09 2010
Copyright (c) 1982, 2005, Oracle.
All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
- Production
With the Partitioning, OLAP
and Data Mining options
SQL>
--将密码改回原来的密码
[oracle@robinson dbs]$ orapwd file=orapworcl password=redhat
OPW-00005:
File with same
name exists - please
delete or rename
[oracle@robinson dbs]$ orapwd file=orapworcl password=redhat force=y
[oracle@robinson dbs]$ rm orapworcl /*删除密码文件*/
[oracle@robinson dbs]$ orapwd file=orapworcl password=redhat
/*重建密码文件*/
--演示将entries
改为,然后将多个用户设置为sysdba或sysoper
[oracle@robinson dbs]$ orapwd file=orapworcl password=redhat entries=1
[oracle@robinson dbs]$ strings orapworcl
]/[Z
ORACLE Remote Password file
INTERNAL
F7AC0C5E9C3C37AB
E100B964899CDDDF
--创建PL/SQL
增加个新用户
SQL> begin
2 for i
in 1..20 loop
3 execute immediate
'create user u'||i||' identified by u'||i||'';
4 end loop;
5 end;
6 /
--将新用户赋予sysdba角色
PL/SQL procedure successfully completed.
SQL> begin
2 for i
in 1..20 loop
3 execute immediate
'grant sysdba to u'||i||'';
4 end loop;
5 end;
6 /
begin /*得到和密码文件相关的错误提示*/
*
ERROR at line 1:
ORA-01996:
GRANT failed: password
file ''
is full
ORA-06512: at line 3
--再次查看orapworcl发现多出了行,即当设置为的时候多出了个用户。原因是该密码文件是二进制文件,按矩阵计算可存放多少
[oracle@robinson dbs]$ strings orapworcl
]/[Z
ORACLE Remote Password file
INTERNAL
F7AC0C5E9C3C37AB
E100B964899CDDDF
3E81B724A296E296
668509DF9DD36B43
9CE6AF1E3F609FFC
7E19965085C9ED47
--注意不要轻易删掉密码文件,这样会将其他账户的信息也删除
/*
六、导致密码文件内容修改的几种方式:
1.使用orapwd建立,修改密码文件,不建议使用
2.使用alter user sys identified by <>
3.使用grant sysdba to <>
或grant sysoper to <>
或revoke sysdba |sysoper from <>
七、查看密码文件内容 */
[oracle@robinson dbs]$ strings orapworcl
]/[Z
ORACLE Remote Password file
INTERNAL
F7AC0C5E9C3C37AB
E100B964899CDDDF
--当sys密码不记得可以使用OS系统身份认证登陆到sqlplus,再使用alter
user修改密码
SQL> alter
user sys identified by oracle;
User altered
--再次查看密码文件与上一次对比,已经发生变化
SQL> ho strings orapworcl
]/[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
--通过授予权限来修改密码,密码文件中多出了scott的信息
SQL> grant sysdba
to scott;
Grant succeeded.
SQL> ho strings orapworcl
]/[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
SCOTT
F894844C34402B67
--注意此处中登陆后,显示的账户信息还是sys,而不是scott,但此时的scott已经具备了sys权限
[oracle@robinson dbs]$ sqlplus scott/tiger@orcl
as sysdba
SQL*Plus: Release 10.2.0.1.0
- Production on Fri Apr 9 11:56:09 2010
Copyright (c) 1982, 2005, Oracle.
All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
- Production
With the Partitioning, OLAP
and Data Mining options
SQL> show user
USER is "SYS"
/*
八、sysdba
与sysoper的区别*/
SQL> select
* from system_privilege_map
where name
like '%SYS%';
PRIVILEGE NAME
PROPERTY
---------- ---------------------------------------- ----------
-3 ALTER SYSTEM
0
-4 AUDIT SYSTEM
0
-83 SYSDBA
0
-84 SYSOPER
0
--下面的链接是两者不同的权限说明
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/dba.htm#sthref137
The manner in which you are authorized
to use these privileges depends upon the method
of authentication that you
use.
When you connect
with SYSDBA or SYSOPER privileges, you connect
with a default
schema,
not with the
schema that is generally associated
with your username.
For SYSDBA this schema
is SYS;
for SYSOPER the schema
is PUBLIC.
--两者的schema不同
SQL> show user
USER is "SYS"
SQL> conn /
as sysoper
Connected.
SQL> show user
USER is "PUBLIC"
--查看密码文件视图,可以得到哪些用户为sysdba,哪些用户为sysoper
SQL> select
* from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE
TRUE
SCOTT TRUE
FALSE
USER1 FALSE TRUE
--下面演示了使用不同的角色来登陆
SQL> conn scott/tiger@orcl
as sysdba
Connected.
SQL> conn scott/tiger@orcl
as sysoper /*scott的sysop列为false*/
ERROR:
ORA-01031: insufficient privileges
Warning: You are
no longer connected to ORACLE.
SQL> conn user1/user1@orcl
as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL> conn user1/user1
as sysoper
Connected.
/*
九、更多 */
Oracle
数据库实例启动关闭过程
Oracle 10g SGA
的自动化管理
使用OEM,SQL*Plus,iSQL*Plus
管理Oracle实例
Oracle实例和Oracle数据库(Oracle体系结构)
SQL
基础-->常用函数
SQL基础-->过滤和排序
SQL
基础-->SELECT
查询
分享到:
相关推荐
Oracle密码文件是Oracle数据库系统中用于管理特权用户(如INTERNAL、SYSDBA和SYSOPER)登录验证的关键组件。本文详细介绍了如何创建、使用和维护Oracle密码文件,以及相关的配置参数和用户管理操作。 首先,Oracle...
Oracle 密码文件详细说明 Oracle 密码文件是一种身份认证机制,用于 DBA 权限的身份验证。DBA 用户是指具有 sysdba 和 sysoper 权限的用户,默认情况下 sysdba 角色中存在于 sys 用户,sysoper 角色中存在于 system...
这篇文档主要探讨了如何使用和维护Oracle密码文件,这对于远程或本地以特权用户身份(如INTERNAL/SYSDBA/SYSOPER)登录数据库至关重要。 首先,Oracle密码文件存储在`ORACLE_HOME\DATABASE`目录下,包含了超级用户...
另外,如果你使用的是操作系统认证,可以删除旧的密码文件并创建新的,例如: ``` orapwd file=d:\oracle\database\pwdetalker.ora password=newpass entries=10 force=y; ``` 这将创建一个新的口令文件,其中`...
在使用Oracle过各中经常会遇到密码丢失的时候,本文介绍了用两种方法来解决这个问题。
Oracle数据库密码文件是确保数据库安全的重要组件,主要用于特权用户(如INTERNAL、SYSDBA和SYSOPER)的身份验证。本文将深入探讨密码文件的创建、使用和维护。 首先,密码文件通常位于`ORACLE_HOME\DATABASE`目录...
### 三、Oracle密码文件重置 在某些Oracle版本中,如Oracle 9i,还可以通过修改密码文件来重置密码: 1. **使用orapwd工具**:运行`orapwd file='/oracle/pwdsid.ora' password=新密码`,这里`pwdsid.ora`是密码...
本文将深入解析Oracle密码过期后的修改方法,以及如何通过SQL命令来调整密码的有效期。 ### Oracle密码过期的原因 Oracle数据库默认情况下会为用户设置密码有效期,这是为了确保系统的安全性,防止因密码长期未...
### Oracle密码过期处理方法 在Oracle数据库管理中,用户密码的有效期是一个重要的安全特性,它可以帮助企业确保数据的安全性和合规性。然而,在实际操作过程中,可能会遇到密码过期的问题,这不仅会影响到用户的...
Oracle密码文件是Oracle数据库系统中用于管理特权用户(如INTERNAL、SYSDBA和SYSOPER)登录验证的关键组件。本文将详细介绍密码文件的创建、使用和维护,以确保数据库的安全性和有效管理。 首先,理解Oracle密码...
在Oracle数据库中,可以通过设置`remote_login_passwordfile`参数来控制是否使用密码文件以及使用何种类型的密码文件。该参数有三个可选值:`NONE`、`SHARED` 和 `EXCLUSIVE`。 - **NONE**:表示不使用密码文件。...
在IT行业中,数据库管理系统Oracle是企业级应用...总的来说,"ORACLE密码忘记解决办法"这个资源包提供了一种实用的方法来应对忘记Oracle密码的紧急情况。通过学习和实践,我们可以更好地管理和保护我们的Oracle数据库。
综上所述,理解Oracle的默认密码、学会如何修改它们以及掌握密码文件的管理技巧,对于保障Oracle数据库系统的安全性有着不可忽视的作用。在日常运维中,应遵循最佳实践,定期更改密码,限制对敏感账户的访问,从而...
修改oracle用户密码永不过期 查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users; 2查看指定概要文件(如default)的密码有效期设置:
### Oracle 11g 密码区分大小写问题详解 #### 一、Oracle 11g 版本特性概述 自 Oracle 11g 版本开始,Oracle 数据库默认开启了密码大小写敏感(case sensitivity)功能。在早期版本如 10g 及其之前的版本中,默认...
### 二、重置Oracle密码的步骤 #### 1. 使用SYSDBA或SYSOPER身份登录SQL*Plus 首先,你需要以具有最高权限的身份登录到SQL*Plus,通常是SYSDBA或SYSOPER。这可以通过以下命令实现: ``` sqlplus / as sysdba ``` ...