口令文件介绍

在ORALCE数据库系统中,用户如果要以特权用户身份(SYS/SYSDBA/SYSOPER)登录ORALCE数据库可以有两种身份验证的方法:即使用与操作系统集成的身份验证或使用ORALCE数据库的密码文件进行身份验证。因此,管理好密码文件,对于控制授权用户从服务器本机或远端登录Oracle数据库系统,执行数据库管理工作,具有重要的意义.

ORALCE口令文件用于存储拥有部分特权用户(sys等用户)的口令(注意:普通账号密码是不会存储在口令文件的)。允许用户通过口令文件验证,在数据库未启动之前登陆,从而启动数据库。如果没有口令文件,在数据库未启动之前就只能通过操作系统认证.口令文件存放在$ORACLE_HOME/dbs目录下(linux,window放在database),默认名称是orapw$ORACLE_SID。即密码文件位置:

Linux下的存放位置:$ORACLE_HOME/dbs/orapw<sid>.ora

Windows下的存放位置:$ORACLE_HOME/database/PW%ORACLE_SID%.ora

口令文件管理

1:口令文件成员查看

SQL> SELECT * FROM V$PWFILE_USERS;

 

USERNAME                       SYSDBA SYSOPER

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

SYS                            TRUE   TRUE

如果查询该视图没有的记录的话,那么这是什么情况呢?出现这种情况,一般是口令文件被删除或移走。 例如如下操作所示:

oracle@DB-Server ~]$ 

[oracle@DB-Server ~]$ cd $ORACLE_HOME/dbs

[oracle@DB-Server dbs]$ mv orapwgsp  /tmp

[oracle@DB-Server dbs]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on Thu Aug 4 17:43:39 2016

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> SELECT * FROM V$PWFILE_USERS;

 

no rows selected

 

SQL> 

ORACLE使用操作系统集成的身份验证或使用密码验证,这个类似SQL SERVER中的Windows身份验证和SQL Server验证方式,那么使用哪种方式登录数据库是由两个参数控制的。

1:ORACLE提供的一个参数remote_login_passwordfile,remote_login_passwordfile有none,shared,exclusive3个值:

   none表示不使用口令文件;

   exclusive表示实例独占使用口令文件,也就是各自实例使用单独的口令文件,

   shared表示多个实例共享一个口令文件

2:sqlnet.ora里面的参数SQLNET.AUTHENTICATION_SERVICES

 

SQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)

none : 表示关闭操作系统认证,只能密码认证

all : 用于linux或unix平台,关闭本机密码文件认证,采用操作系统认证,但远程<异机>可以使用密码文件认证

nts : 用于windows平台

2:使用操作系统集成的身份验证登录数据库

 

[oracle@DB-Server ~]$ 

[oracle@DB-Server ~]$ cd /u01/app/network/admin/

[oracle@DB-Server admin]$ more sqlnet.ora 

# sqlnet.ora Network Configuration File: /u01/app/network/admin/sqlnet.ora

# Generated by Oracle configuration tools.

 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

 

ADR_BASE = /u01

[oracle@DB-Server admin]$ vi sqlnet.ora 

# sqlnet.ora Network Configuration File: /u01/app/network/admin/sqlnet.ora

# Generated by Oracle configuration tools.

 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

 

ADR_BASE = /u01

SQLNET.AUTHENTICATION_SERVICES=all

其实默认情况,参数文件sqlnet.ora里面并没有配置SQLNET.AUTHENTICATION_SERVICES这个参数,默认表示操作系统认证,如果配置文件sqlnet.ora 里面有SQLNET.AUTHENTICATION_SERVICES=none, 那么设置为SQLNET.AUTHENTICATION_SERVICES=all 即可启用操作系统集成的身份验证登录数据库

[oracle@DB-Server admin]$ more sqlnet.ora 

# sqlnet.ora Network Configuration File: /u01/app/network/admin/sqlnet.ora

# Generated by Oracle configuration tools.

 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

 

ADR_BASE = /u01

SQLNET.AUTHENTICATION_SERVICES=none

[oracle@DB-Server admin]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on Sat Aug 6 21:30:23 2016

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

ERROR:

ORA-01031: insufficient privileges

 

 

Enter user-name: 

3:改变OS认证为口令认证

SQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)

none : 表示关闭操作系统认证,只能密码认证

all : 用于linux或unix平台,关闭本机密码文件认证,采用操作系统认证,但远程<异机>可以使用密码文件认证

nts : 用于windows平台

在sqlnet.ora文件里面,增加SQLNET.AUTHENTICATION_SERVICES= (none)

[oracle@DB-Server admin]$ vi sqlnet.ora 

 

# sqlnet.ora Network Configuration File: /database/product/dbhome_1/network/admin/sqlnet.ora

# Generated by Oracle configuration tools.

 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

SQLNET.AUTHENTICATION_SERVICES= none

参数remote_login_passwordfile仅仅表示远程登录数据库时,是否使用密码验证。当remote_login_passwordfile=none并且SQLNET.AUTHENTICATION_SERVICES= (none)时,远程和本机都无法登录数据库。

SQL> alter system set remote_login_passwordfile=none scope=spfile;

 

System altered.

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

 

Total System Global Area 1090519040 bytes

Fixed Size                  1218920 bytes

Variable Size             234882712 bytes

Database Buffers          838860800 bytes

Redo Buffers               15556608 bytes

Database mounted.

Database opened.

SQL> 

此时从远程客户端登录:此处实际上是无法通过口令文件验证

C:\Users\kerry>sqlplus "sys/kkk123456@mydb as sysdba"

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 1月 11 15:37:45 2013

 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

 

ERROR:

ORA-01017: invalid username/password; logon denied

 

 

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;                                

 

System altered.

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 1090519040 bytes

Fixed Size                  1218920 bytes

Variable Size             234882712 bytes

Database Buffers          838860800 bytes

Redo Buffers               15556608 bytes

Database mounted.

Database opened.

SQL> show parameter remote_login_password

 

NAME                                 TYPE        VALUE

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

remote_login_passwordfile            string      EXCLUSIVE

SQL> 

远程客户端以SYSDBA登录数据库时,此时远程登录OK了

4:查看口令文件内容

[oracle@DB-Server dbs]$ strings orapwgsp

]\[Z

ORACLE Remote Password file

INTERNAL

6813407607142FD5

2F2B362C23566AE4

E20879077A63EBEE

如果你用more命令查看,就会发现查看不到具体内容,如下所示:

[oracle@DB-Server dbs]$ more orapwgsp

ORACLE Remote Password file

口令文件创建

 

现在人为删除口令文件后,从远程客户端以SYSDBA登录数据库

C:\Users\kerry>sqlplus "sys/kkk123456@mydb as sysdba"

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 1月 11 15:53:06 2013

 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

 

ERROR:

ORA-01031: insufficient privileges

ORACLE 10g 下orapwd命令

[oracle@wgods dbs]$ orapwd

Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n> 

 

  where

    file - name of password file (mand),

    password - password for SYS (mand),

    entries - maximum number of distinct DBA and     force - whether to overwrite existing file (opt),

OPERs (opt), 

  There are no spaces around the equal-to (=) character.

ORACLE 11g 下orapwd命令

[oracle@DB-Server ~]$ orapwd

Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>

 

  where

    file - name of password file (required),

    password - password for SYS will be prompted if not specified at command line,

    entries - maximum number of distinct DBA (optional),

    force - whether to overwrite existing file (optional),

    ignorecase - passwords are case-insensitive (optional),

    nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only).

    

  There must be no spaces around the equal-to (=) character.

参数描述

file : 创建的密码文件

password : 创建的口令(sys用户)

entries=MAX_USER : 口令文件中可以存放的最大用户数。即拥有sysdba和sysoper身份登陆的用户数

force=(Y/N) : 强制覆盖已存在的密码文件

ignorecase : 密码大小写敏感

nosysdba=<y/n> : sysdba用户不可以登陆

密码文件的创建:

 

1:确定实例的名称、密码文件的路径和名称。

2:停止数据库,删除老的密码文件

3: 用orapwd工具创建

[oracle@DB-Server ~]$ cd /u01/app/dbs/

 

[oracle@DB-Server dbs]$ orapwd file=orapwgsp password=kkk123456 force=y

 

[oracle@DB-Server dbs]$ ls orapwgsp 

 

orapwgsp

 

[oracle@DB-Server dbs]$

ORACLE口令管理的更多相关文章

  1. oracle口令管理之允许某个用户最多尝试三次登录

    如果一个用户连续三次登录失败,则锁定该用户两天,两天之后该用户才能重新登录. 创建profile文件: 更新账户: 三次登录失败后用户就会被锁定: 用户锁住之后要怎么给他解锁: 解锁之后就可以正常登录 ...

  2. Oracle数据库安全(二)资源限制于口令管理

    一.资源限制与口令管理概述 1.概要文件介绍: 在Oracle数据库中,用户对数据库和系统资源使用的限制以及对用户口令的管理的是建立概要文件实现的.它是Oracle数据库安全策略的重要组成不封.每个数 ...

  3. Oracle 用户管理与权限控制

    Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...

  4. Oracle权限管理详解

    Oracle权限管理详解 转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级. ...

  5. Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理

    1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...

  6. Oracle—用户管理的备份(一)

    用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...

  7. 四、oracle 用户管理(Profile)

    oracle 用户管理 :profile + tablespace + role + user  一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时, ...

  8. Oracle用户管理和角色管理

    原博:http://liwx.iteye.com/blog/1182251 一.创建用户的Profile文件 SQL> create profile student limit // stude ...

  9. oracle权限管理学习

      Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级.Role 角色级.这些权限可以授予给用户.特殊用户pub ...

随机推荐

  1. Win10 IoT C#开发 5 - 操作 IoT 设备内嵌 SQLite 数据库 CURD

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 前几章我 ...

  2. .NET使用ZXing.NET生成中间带图片的二维码

    很久之前就有写这样的代码了,只是一直没记录下来,偶然想写成博客. 把之前的代码封装成函数,以方便理解以及调用. 基于开源的 ZXing.NET 组件,代码如下: 先添加对ZXing.NET的引用,然后 ...

  3. webservice入门(2)开发ws程序

    因为webservice分为服务端和客户端,所以如果要学习的话,那么肯定是包括这两部分的了. 1.开发服务端的webservice: 使用jdk开发ws其实很简单,只是需要一些注解:最重要的是 @We ...

  4. JAVA实现的微信扫描二维码支付

    吐槽一下 支付项目采用springMvc+Dubbo架构实现,只对外提供接口. 话说,为什么微信支付比支付宝来的晚了那么一点,一句话,那一阵挺忙的,然后就没有时间整理,最近做完支付宝支付,顺便也把微信 ...

  5. 新手编辑c语言的注意事项

    一般情况下新手都会犯的错误 1,注意在c语言中的大小写是有区别的,但在windows系统中默认没有差别,但是有时候也会出现bug. 2.在编程的时候注意定义你所使用的变量 3,每行代码的结尾注意要有分 ...

  6. adb 常用命令总结

    1. adb / adb -help 使用帮助 2. adb devices 查看连接到电脑的设备 3. adb install example.apk 安装程序 4. adb -s emulator ...

  7. JAVA中的GC机制详解

    优秀Java程序员必须了解的GC工作原理 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只 ...

  8. 推荐12款实用的 JavaScript 书页翻转效果插件

    Flipbooks(书页)或者页面翻转已成为在网页设计中最流行的交互动画之一.他们可以用在 Flash,网页或者在线杂志中.使用书页动画或者页面翻转的网页设计效果方便人们展示他们的产品,作品或者其它内 ...

  9. 经典案例:那些让人赞不绝口的创新 HTML5 网站

    在过去的10年里,网页设计师使用 Flash.JavaScript 或其他复杂的软件和技术来创建网站.但现在你可以前所未有的快速.轻松地设计或创造互动的.有趣好看的网站.如何创建?答案是 HTML5 ...

  10. 应用matplotlib绘制地图

    #!/usr/bin/env python # -*- coding: utf-8 -*- from math import sqrt import shapefile from matplotlib ...