码迷,mamicode.com
首页 > 数据库 > 详细

oracle-6-密码文件

时间:2016-05-30 21:44:18      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:

密码文件属于database的一部分

密码文件的作用:DBA用户的身份认证

 

当具有sysdba和sysoper的权限的时候就是dba 用户

默认情况下

sysdba就是sys,他的权限最大

sysoper就是system

 

登录Oracle数据库可以有两种身份验证的方法

(1)使用操作系统集成的身份验证

(2)使用Oracle数据库的密码文件进行身份验证

 

他们连个的应用场景

if 本地登录

  (1)使用操作系统认证

  (2)密码文件认证

 

[root@oracle dpdump]# id oracle
uid=1101(oracle) gid=1000(oinstall) 组=1000(oinstall),1300(dba),1301(oper)

我们看到oracle 用户是属于dba这个组的,所以具备dba这个组的权限的,默认情况下他具备了操作系统的权限,可以不适用密码就可以登录了(使用操作系统里的用户名和密码,然后就可以进去了)

sqlplus / as sysdba

SQL> 这种情况下我们就是用sys用户登陆进来的
SQL> show user
USER is "SYS"

 

什么是密码文件认证

 密码文件目录$ORACLE_HOME/dbs

密码文件是$ORACLE_HOME/dbs/orapw<SID>

下面的 orapwesbtest就是esbtest这个实例的密码文件

比如说我现在给这个密码文件删除了,我们来看看

[oracle@oracle dbs]$ sqlplus sys/192.168.110.99@esbtest as sysdba

如果密码文件被删除了,则创建一个密码文件

比如这里的 orapwesbtest 密码文件丢失了,我们用下面的这个方法生成密码文件

orapwd file= orapwesbtest password=yizhenuplooking  entries=1

 

决定是密码文件认证还是OS认证,由两个参数决定

参数(1)

remote/login/passwordfile=none|exclusive|shared

none 不适用密码问津啊认证

execlusive 要密码文件认证,自己独占使用(这个是默认的)

shared  要密码文件认证,不同的实例dba用户可以共享文件

要是有密码文件认证,则sys用户就不能远程登录了

 

参数(2)

$ORACLE_HOME/network/admin/sqlnet.ora  

文件里面添加下面这一行

SQLNET.AUTHENTCICATION_SERVICES=none|all|nts

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

all   用于linux/unix平台,关闭本机密码文件认证,采用操作系统认证,但是远程(不是自己的机器)可以使用密码文件认证,但是本机是不可以登陆的

nts  是windows 平台的,暂时不做讨论

 

这两个参数可以配合使用,不同的搭配,会有不同的效果

 

密码文件的管理:

密码文件的额建立:

看一下怎么使用的 orapwd
Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>

  where
    file - name of password file (required),密码文件的名字orapw<SID>
    password - password for SYS will be prompted if not specified at command line,sys用户的密码
    entries - maximum number of distinct DBA (optional),可以有多少个sysdba,sysoper权限用户放到密码文件中去,实际可以放的用户密码文件比这个数大
    force - whether to overwrite existing file (optional),  force 默认为n,也可以问为y,是否覆盖原有的密码文件
    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.

 

密码文件的修改:

(1)orapwd 建立密码文件(不建议使用)

(2)alter  user sys  identified by

(3) grant  sysdba  to 用户

(4)grant sysoper to 用户

(5)revoke  sysdba|sysoper   from  用户

上面都会使密码文件产生变化

 

比如说我现在不记得我的sys用户的密码,这个时候我么可以先通过操作系统认证的方式进入

sqlplus   /  as  sysdba

alter   user   sys identified   by 12334234;

 

比如说我们现在想让一个普通用户拥有部分sysdba的权限

conn / as sysdba;

create user bao identified by yizhenuplooking;


SQL> grant sysdba to bao;

Grant succeeded.

 

我们可以使用密码认证进行登录

sqlplus bao/yizhenuplooking@esbtest as sysdba;

普通用户bao 拥有了sys的权限,但是默认请款下不是bao而是sys用户,可以使用show user看一下,因为你就是用sys用户的权限登录进来的,所以默认情况下是sys用户

 

看下sysdba 和  sysoper到底有什么区别,他们两个都是系统权限

sysdba  是帮派老大

sysoper 是帮派二当家

 

怎么查看我当前用户有哪些权限呢?比如说查看当前系统哪些是具有sysdba权限的额,哪些是具有sysoper权限的

我们可以查看密码文件的视图,这个要在sysdba用户下才能查看

conn  /  as sysdba;

SQL> select * from v$pwfile_users;

USERNAME               SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                          TRUE  TRUE  FALSE
BAO                         TRUE  FALSE FALSE
S1                            FALSE TRUE  FALSE

总结:

(1)密码文件的作用

(2)密码文件的位置

(3)密码文件的查找先后顺序

首先查找orapw<SID>,找不到在找orapwd的,都找不到则密码认证失败

(4)dba用户的认证方式  系统认证和密码文件认证,什么时候用什么认证方式,由两个参数决定

(5)密码文件的建立

(6)密码文件的修改的方式

(7)当sys密码不对的时候,最好不要给他删除重新建立,我么应该用系统认证方式进入之后用alter  user   sys 的方式修改密码,如果密码文件没有了或者是损坏了,只有重新建立了

今天的作业:

1.组合时候使用两个认证登陆方式的参数,看看会有什么效果,从而总结出,关闭OS认证,密码文件,关闭本地密码文件,关闭远程密码文件怎么做

2.技术分享

 

oracle-6-密码文件

标签:

原文地址:http://www.cnblogs.com/smail-bao/p/5543807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!