20151116 密码文件

来源:互联网 发布:python 卷积 编辑:程序博客网 时间:2024/06/11 02:46

查看oracle数据库版本号

select * from v$version;

查看当前用户

select user from dual;

show user;

sysdba不是权限,当用户以sysdba身份登录数据库时,登录用户都会变成sys.

sysdba身份登录可以打开关闭数据库,创建spfile,对数据库进行恢复操作等,而这些是dba角色无法做到的

system是数据库内置的一个普通管理员,手工创建的任何用户在被授予dba角色后都跟这个差不多

sys是数据库的超级用户,数据库内很多重要的东西(数据字典表,内置包,静态数据字典视图等)都属于这个用户,sys用户必须以sysdba身份登录

system用户以sysdba身份登录时就是sys,准确的说,任何用户以sysdba身份登录时都是sys

sys的角色是sysdba,sytem的角色是sysoper

sys,system都有dba权限

用qq群作比喻,sys相当于群主,system就相当于管理员

sysdba是系统权限,dba是用户对象权限;

sysdba是管理oracle实例的,他的存在不依赖于整个数据库完全启动,只要实例启动了,它就已经存在

而只有数据库打开了或者说整个数据库完全启动后,dba角色才有了存在的基础

dba是一种role对应的是对oracle实例里对象的操作权限的集合,而sysdba是概念上的role是一种登录认证时的身份标识而已。而且dba是oracle里的一种对象,role和user一样,是实实在在存在oracle里的物理对象,而sysdba是值得一种概念上的操作对象,在oracle数据库里并不存在。


使用密码文件登录sys用户(远程登录)

sqlplus sys/oracle@redhat5 as sysdba;

密码文件控制文件存放路径 cd $ORACLE_HOME/dbs

密码文件重建 

orapwd file=orapwredhat5 password=oracle entries=5

今天终于搞清了sqlplus 链接老是 报协议适配器错误的原因了

很简单 sqlplus sys/oracle@redhat5 as sysdba

sqlplus 远程登录时应加上服务名

请输入用户名:sys@redhat5 as sysdba

输入口令:oracle

决定密码文件认证还是os认证

remote_login_passwordfile=none|exclusive|shared

none--不使用密码文件认证

exclusive--要密码文件认证 自己独占使用 为默认值

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

另外还有一个参数

$ORACLE_HOME/network/admin/sqlnet.ora

SQLNET.AUTHENCATION_SERVICES=none|all|nts

none -->关闭os认证,只能密码文件认证

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

nts Windows平台


修改sqlnet.ora文件 

加入以下一行

SQLNET.AUTHENTICATION_SERVICES=none

此时已不能进行操作系统认证

只能用密码认证

sqlplus sys/oracle@redhat5 as sysdba

使用sqlplus登录时可以这样

数据库项填 192.168.48.10:1521/redhat5

grep 'all' sqlnet.ora 查找 sqlnet.ora文件中 all相关的字段

orapwd 查看密码文件建立相关命令

在密码文件已经存在的情况下强制更改密码文件

orapwd file=orapwredhat5 password=test force=y 

密码文件不仅仅只包括sys用户的密码,而是包括拥有sysdba和sysoper这两种权限用户的密码


0 0
原创粉丝点击