profile文件、密码文件、游标共享的介绍

 2010年12月24日 13:18:38

 

profile文件的介绍:

1、设置一个用户只能有一个会话
SQL> create profile one_session limit sessions_per_user 1;
SQL> alter user lttfm profile one_session;
SQL> alter system set resource_limit=true; --限制生效的前提(resource_limit=true)
    做了以上设置后,若lttfm用户已经登陆,再次用lttfm登陆会提示错误(ora-02391:exceeded simultaneous sessions_per_user limit)则不能再次登陆即lttfm用户不能打开两个会话。

 2、查看信息

select * from dba_users;--查看用户的参数
select * from dba_profiles;--显示所有profile文件及其限制

 

select * from user_password_limits;--描述指定给用户的profile中的口令限制情况
select * from user_resource_limits;--描述指定给用户的profile中的资源限制情况
select *from resource_cost;--列举每个资源的价值
 

 

 3、profile参数修改

--修改profile参数
alter PROFILE one_session limit sessions_per_user 10;
--删除一个新的尚未分配给用户的PROFILE
DROP PROFILE one_session
--删除已创建的profile,如果已经指定了用户则要加上cascade关键字
DROP PROFILE one_session cascade
注:DEFAULT PROFILE不可以被删除

4、profile的参数含义
COMPOSITE_LIMIT:一个会话的资源成本限制,CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, and PRIVATE_SGA
SESSIONS_PER_USER:一个用户允许同时(并发)会话的总数,超过后系统禁止该用户的后续会话
CPU_PER_SESSION:定义了一个SESSION占用的CPU的时间(1/100 秒),当达到这个限制用户不能在此会话中执行任何操作,此时必须先断开连接,再连接才行
CPU_PER_CALL:限制每次调用SQL语句期间(parse、execute、fetch)可用的CPU时间总量,单位是百分之一秒。达到限制时语句以报错结束。不同于       CPU_PER_SESSION的是,没达到CPU_PER_SESSION限制,还可以进行新的查询
LOGICAL_READS_PER_SESSION:一个会话允许读写的逻辑块的数量限制
LOGICAL_READS_PER_CALL:一次调用的SQL期间,允许读数据库块数限制
IDLE_TIME:一个连接会话的最长连接时间;当用户空闲时间超过IDLE_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话
CONNECT_TIME:一个连接会话的最长连接时间(分钟);当用户会话时间超过CONNECT_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话
PRIVATE_SGA:一个会话允许分配的最大SGA大小,使用K/M定义
FAILED_LOGIN_ATTEMPTS:当连续登陆失败次数达到该参数指定值时,用户被加锁;
PASSWORD_LIFE_TIME:口令的有效期(天),默认为UNLIMITED
PASSWORD_REUSE_TIME:口令被修改后原有口令隔多少天被重新使用,默认为UNLIMITED
PASSWORD_REUSE_MAX:口令被修改后原有口令被修改多少次才允许被重新使用
PASSWORD_VERIFY_FUNCTION:口令效验函数
PASSWORD_LOCK_TIME:帐户因FAILED_LOGIN_ATTEMPTS锁定时,加锁天数
PASSWORD_GRACE_TIME:口令修改的宽限期(天)

 

密码文件

1、密码文件的使用
sqlplus "/ as sysdba" --可以直接登陆本机数据库,但是登陆远程数据库时失败(ERROR:ORA-01031: insufficient privileges)
如果登陆远程数据库就要写上用户名密码,而且该用户名具有sysdba权限

创建密码文件
ORAPWD FILE=<密码文件名> PASSWORD =<登陆密码> ENTRIES=<允许使用该密码文件的最大用户数>

密码文件位置
D:\oracle\product\10.2.0\db_1\database下的PWDSID.ORA,其中SID代表相应的Oracle数据库系统标识符

2、密码文件的REMOTE_LOGIN_PASSWORDFILE参数
有了密码文件之后,需要设置初始化参数REMOTE_LOGIN_PASSWORDFILE来控制密码文件的使用状态。
SQL> show parameter password --查看密码文件的状态
NONE:指示Oracle系统不使用密码文件,特权用户的登录通过操作系统进行身份验证;
EXCLUSIVE:指示只有一个数据库实例可以使用此密码文件。只有在此设置下的密码文件可以包含有除INTERNAL/SYS以外的用户信息,
                   即允许将系统权限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户。
SHARED:指示可有多个数据库实例可以使用此密码文件。在此设置下只有INTERNAL/SYS帐号能被密码文件识别,即使文件中存有其他用户的信息,
              也不允许他们以SYSOPER/SYSDBA的权限登录。此设置为缺省值。
--修改'REMOTE_LOGIN_PASSWORDFILE'参数值
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE
--授权给其它用户
 创建相应用户帐号,对其授权(包括SYSOPER和SYSDBA):
 GRANT SYSDBA TO user_name;


 

游标共享的使用

默认情况下,cursor_sharing的参数为EXACT
select * from i_manhole_info where g3e_id=50041841;
--打开游标共享
alter session set cursor_sharing=force;
--再查询
select * from i_manhole_info where g3e_id=50041841;
--通过sql_text表查看前后两次查询的结果
select * from v$sql where sql_text like 'select * from i_manhole_info%';
查询结果:
select * from i_manhole_info where g3e_id=50041841;
select * from i_manhole_info where g3e_fid=:"SYS_B_0" --游标共享打开后将直接变量删除,采用绑定变量

--停止游标共享
alter session set cursor_sharing=EXACT;

备注:一般情况下,我们不采用通过开启游标共享来调整性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值