Oracle 密码文件

简介: --==============================-- Oracle密码文件--==============================/*一、密码文件   作用:主要进行DBA权限的身份认证   DBA用户:具有sysdba,sysoper权限的用户被称为dba用户。

--==============================

-- Oracle密码文件

--==============================

/*

一、密码文件

   作用:主要进行DBA权限的身份认证

   DBA用户:具有sysdbasysoper权限的用户被称为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/PWD%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 : 用于linuxunix平台,关闭本机密码文件认证,采用操作系统认证,但远程<异机>可以使用密码文件认证

      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, OLAPand 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, OLAPand Data Mining options

 

   SQL>

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

   [oracle@robinson admin]$ sqlplus sys/redhat@orclas 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: Authenticationservice 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 existingfile (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@orclas 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, OLAPand Data Mining options

 

   SQL>  

   --将密码改回原来的密码

   [oracle@robinson dbs]$ orapwd file=orapworcl password=redhat

 

   OPW-00005:File with same name exists - pleasedelete 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改为,然后将多个用户设置为sysdbasysoper

   [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 iin 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 iin 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: passwordfile '' 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> alteruser sys identified by oracle;

 

   User altered

   --再次查看密码文件与上一次对比,已经发生变化

   SQL> ho strings orapworcl

   ]/[Z

   ORACLE Remote Password file

   INTERNAL

   AB27B53EDC5FEF41

   8A8F025737A9097A

 

 

   --通过授予权限来修改密码,密码文件中多出了scott的信息

   SQL> grant sysdbato 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@orclas 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, OLAPand Data Mining options

 

   SQL> show user

   USER is "SYS"

 

   /*

八、sysdbasysoper的区别*/

   SQL> select* from system_privilege_mapwhere 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 methodof authentication that you use.

 

   When you connect with SYSDBA or SYSOPER privileges, you connectwith a default schema,

   not with theschema that is generally associatedwith your username.

   For SYSDBA this schemais 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@orclas sysdba

   Connected.

   SQL> conn scott/tiger@orclas sysoper  /*scottsysop列为false*/

   ERROR:

   ORA-01031: insufficient privileges

 

 

   Warning: You are no longer connected to ORACLE.

   SQL> conn user1/user1@orclas sysdba

   ERROR:

   ORA-01031: insufficient privileges

 

 

   SQL> conn user1/user1as sysoper

   Connected.

   /*

九、更多 */

Oracle数据库实例启动关闭过程

 

Oracle 10g SGA的自动化管理

 

使用OEM,SQL*Plus,iSQL*Plus管理Oracle实例

 

Oracle实例和Oracle数据库(Oracle体系结构)

 

SQL基础-->常用函数

 

SQL基础-->过滤和排序

 

SQL基础-->SELECT查询

 

 

目录
相关文章
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
359 2
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
|
12月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
273 1
【赵渝强老师】Oracle的控制文件与归档日志文件
|
12月前
|
SQL Oracle 关系型数据库
Oracle 从 DMP 文件中恢复指定表的步骤
Oracle 从 DMP 文件中恢复指定表的步骤
1007 7
|
12月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
12月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
259 1
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
12月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
131 0
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
存储 监控 Oracle
Oracle数据文件:数据王国的秘密藏宝图
【4月更文挑战第19天】Oracle数据文件是数据库物理存储的核心,存储实际数据,犹如数据王国的宝藏。它们对数据库性能至关重要,影响数据分布和访问效率。有效管理数据文件涉及合理规划大小、数量,监控使用情况,利用自动扩展功能,并能实现跨磁盘存储和高可靠性。理解数据文件原理有助于优化数据库性能和资源利用,发掘更多数据潜力。

热门文章

最新文章

推荐镜像

更多