oracle profile

Profile是Oracle提供的一种针对用户资源使用和密码管理的策略配置。借助Profile,可以实现特定用户资源上的限制和密码管理规则的应用。在实际的应用中,Profile可以帮助我们实现很多应用层面比较困难实现的需求。

 

 

Profile概述

 

Profile是Oracle安全策略的一个组成部分。

 

默认情况下,用户连接数据库,形成会话,使用CPU资源和内存资源是没有限制的。在一些应用并发量很大,特别是多个应用部署在同一个数据库服务器上的时候,依据应用对企业重要程度的部分,CPU和内存资源的分配一定是有所侧重的。

 

此外,用户的密码管理,可以是一个比较复杂的工作。比如,用户锁定之后,多长时间被自动释放、密码生命周期、登录尝试次数等等。

 

 

这两个方面的问题,都可以借助Profile去解决。Profile相当于一个命名的安全策略集合,其中规定了资源使用的限制和密码使用的规则。Profile定义之后,是可以应用到每个用户上,对每个用户的安全活动进行限制。

 

 

创建Profile

 

借助GUI工具或者SQL,我们可以比较方便的定义一个Profile。下面语句片段是我们定义Profile的方法。

 

 

-- Create profile

create profile DEFAULT limit

  sessions_per_user unlimited

  cpu_per_session unlimited

  cpu_per_call unlimited

  connect_time unlimited

  idle_time unlimited

  logical_reads_per_session unlimited

  logical_reads_per_call unlimited

  composite_limit unlimited

  private_sga unlimited

  failed_login_attempts 10

  password_life_time unlimited

  password_reuse_time unlimited

  password_reuse_max unlimited

  password_lock_time unlimited

  password_grace_time unlimited

  password_verify_function Null;

 

上面代码片段是定义DEFAULT Profile的脚本。上面规定了这个profile所能够规定的各个方面。

 

Profile各类型限制和取值

 

Profile是一个规则集合,分为系统资源类和密码管理类。

 

其中:

 

类型

名称

说明

资源类参数

sessions_per_user

指定同时该用户可以有多少个session连接Oracle;

cpu_per_user

指定每个用户可以使用的CPU时间,指定单位为多少百分之一秒;

cpu_per_call

每次调用SQL使用的CPU时间,单位为百分之一秒;

connect_time

指定总的连接时间,单位为分钟;

idel_time

指定在一个session中,处在inactive状态的时间间隔,单位为分钟;

logical_read_per_session

设置允许每个session进行最大的读块数blocks,包括逻辑读和物理读;

logical_read_per_call

设置每次SQL调用可以读取的最大数据块数;

private_sga

指定每个session可以分配的最大private space,在shared pool空间;(在SGA中);

显然这要求是在共享连接模式shared server architecture下;

composite_limit

指定每个session的总的资源成本。使用service unit表示出来。Oracle计算这个指标方法为:cpu_per_session + connect_time + logical_reads_per_session + private_sga;

密码类参数

failed_login_attempt

指定用户帐号错误密码登录后,多少次会被锁定;默认值为10;

 

password_life_time

指定同一个密码可以支持使用的时间。如果设置了password_grace_time这个参数,那么在grace_time范围内没有变更密码,就会被认为过期。该参数的默认值为180天;

 

password_reuse_time / password_reuse_max

这两个参数相互影响。password_reuse_time指定了密码不能重用之前的天数。reuse_max表示当前使用的密码重用前,必须修改过的次数;

 

password_lock_time

在重复登录次数操作规定次数,用户被锁定之后,恢复的时间。默认为一天;

 

password_grace_time

设置一个天数,当更换密码警报开始,登录允许后开始计时。默认为7天;

 

password_verify_function

允许传入一个pl/sql密码复杂度验证脚本。如果使用默认或者自定义的脚本函数,指定这个函数名称;

否则设置null,表示没有验证;

 

 

此处,对password_reuse_time和password_reuse_max参数进行下额外说明:

 

ü        如果两个参数都指定了整数值,用户在reuse_max次数内和reuse_time内,是不能重用现在使用的密码的;

ü        如果为两个参数中的一个设置了整数值,另外一个设置了unlimited,用户将永远不能重用密码;

ü        如果为其中一个参数设置了Default值,Oracle Profile会采用默认值。如果Default Profile没有修改,默认值为Unlimited,那么这个取值为Unlimited;

ü        如果两个参数都设置为Unlimited,Oracle会忽略这两个参数;

 

 

Unlimited和Default取值

 

在Profile定义和使用中,Unlimited和Default是两个常常使用的取值。

 

Unlimited表示不对这个资源进行限制,不使用这个规则;

 

Default含义表示这个Profile的该项限制规则,应用Default Profile的设置值。Defaulte Profile是一个系统预定义的Profile。

 

 

修改和删除Profile

 

使用drop profile和alter profile语句,可以实现删除和修改profile对象。

 

-- Modify profile

alter profile MONITORING_PROFILE limit

  logical_reads_per_session unlimited;

 

 

drop profile MONITORING_PROFILE

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值