Oracle OS认证与口令文件认证详解
原文地址:http://www.dbabeta.com/2008/oracle_os_pwfile_authentication.html
本文概述与实验环境
概述:
本文只讨论OS认证和口令文件认证方式的配置方法,如何配置以及使用OS认证和口令文件认证方式验证SYSDBA/SYSOPER权限。
实验环境:
Oracle 10.1 + Windows 2003 和 Oracle 10.2 + RHEL 4
特殊权限与Oracle登陆认证管理
在开始学Oracle的时候有件事一直让我感觉很奇怪,就是为什么在数据没有起来的时候只要登录到安装Oracle的操作系统中直接用sqlplus / as
sysdba就能登陆到数据库中然后对数据库进行启动停止之类的操作。后来看到关于Oracle口令文件相关资料的时候才豁然开朗:数据库认证信息并不一定存在数据库中的,这点和SQL
Server很是不一样。
在Oracle中有两类特殊的权限SYSDBA和SYSOPER,当DBA需要对数据库进行维护管理操作的时候必须具有这两类特殊权限之中的一种。在数据库没有打开的时候,使用数据库内建的账号是无法登陆数据库的,但是拥有SYSDBA或是SYSOPER权限的用户是可以登陆的
。认证用户是否拥有两类特殊权限的方法有两种:OS认证和口令文件认证。
OS认证和口令文件认证方法
Oracle特殊权限认证方法
(来源:Oracle® Database
Administrator’s Guide 10g Release 2)
Oracle数据库究竟使用OS认证还是口令文件认证来进行管理取决于下面三个因素:
SQLNET.ORA参数文件中的参数SQLNET.AUTHENTICATION_SERVICES设置
PFILE(SPFILE)参数文件中的参数REMOTE_LOGIN_PASSWORDFILE设置
口令文件orapw$SID(Linux) | PWD$SID.ora(Windows)
Oracle权限认证的基本顺序是这样的,先由SQLNET.AUTHENTICATION_SERVICES的设置值来决定是使用OS认证还是口令文件认证,如果使用口令文件认证的话就要看后面两个条件了:如果REMOTE_LOGIN_PASSWORDFILE参数设置为非NONE而且口令文件存在的话就能正常使用口令文件认证,否则将会失败。
SQLNET.AUTHENTICATION_SERVICES参数
在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,需要修改时直接用文本编辑器打开修改就行了,对于不同的操作系统SQLNET.AUTHENTICATION_SERVICES的取值会有些不一样,通常我们会用到下面的一些设置值:
SQLNET.AUTHENTICATION_SERVICES = (ALL)
对Linux系统,支持OS认证和口令文件认证。
对Windows系统,实际实验是不支持此参数,验证失败。
SQLNET.AUTHENTICATION_SERVICES = (NTS)
此设置值仅用于Windows
N
相关文档:
过程、函数
create or replace procedure p1
is
empname emp.ename%type;
begin
select ename into empname from emp where empno=7788;
dbms_output.put_line(empname);
end;
SQL> ed
SQL> /
Procedure created
SQL> exec p1;
......
ORACLE数据库对象
——同义词、序列、视图
同义词:同义词是现有对象的别名
简化SQL语句
隐藏对象的名称和所有者
提供对对象的公共访问
同义词分为私有同义词和公有同义词
私有同义词只能在其模式内访问,且不能与当前模式的对象同名。
公有同义词可被所有的数据库用户访问。
以 SYS 用 ......
搞oracle都会经常碰到rowid,本文是笔者根据网上各位的文章,加上自己学习中的体会,总结而成。
一.rowid简介
rowid就是唯一标志记录物理位置的一个id,在oracle 8版本以前,rowid由file#+block#+row#组成,占用6个bytes的空间,10 bit 的 file# ......
大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的。有没要想过不安装Oracle客户端直接连接Oracle呢?
其实我一直想这样做,因为这个客户端实在太让人讨厌了!!!不但会安装一个JDK,而且还会把自己放在环境变量的最前面,会造成不小的麻烦。
&n ......
函数:
1.使用Create Function 语句创建
2.语
法:
Create or replace Function 函数名[参数列表]
Return 数据类型
IS|AS
局部变量
Be ......