Oracle 使用 PROFILE对用户资源限制和密码限制的研究与探索

合集下载

oracle查询profile策略

oracle查询profile策略

oracle查询profile策略Oracle查询profile策略概述:在Oracle数据库中,profile策略是用于管理和限制用户对数据库资源的访问的一种机制。

通过为用户分配不同的profile,可以控制他们的资源使用情况,以防止资源滥用和提高数据库的性能和安全性。

本文将介绍如何使用Oracle查询profile策略,并解释其原理和常用的配置选项。

一、查询profile策略的SQL语句要查询Oracle数据库中的profile策略,可以使用如下的SQL语句:SELECT profile, resource_name, limitFROM dba_profilesWHERE resource_type = 'KERNEL' AND profile NOT LIKE 'DEFAULT%';上述SQL语句将从dba_profiles视图中获取所有的profile策略信息,并排除默认的profile。

二、profile策略的原理和作用1. 原理Oracle数据库中的profile策略是通过限制用户对数据库资源的使用来实现的。

每个profile都包含一组资源限制,这些限制可以控制用户对CPU、内存、连接数、并发会话数等数据库资源的使用。

当用户连接到数据库时,会根据其所属的profile来限制其资源使用情况。

2. 作用通过使用profile策略,可以实现以下目标:- 控制用户对数据库资源的滥用,避免某个用户占用过多的资源影响其他用户的正常使用。

- 提高数据库的性能,通过限制用户的资源使用,避免资源争夺和过度消耗。

- 加强数据库的安全性,通过限制用户的并发会话数和连接数,防止恶意用户通过大量连接和会话消耗数据库资源。

三、常用的profile配置选项在使用Oracle查询profile策略时,可以了解以下常用的配置选项:1. PASSWORD_LIFE_TIME:密码有效期限,可以设置为天数或无限期。

Oracle 使用PROFIL管理资源

Oracle  使用PROFIL管理资源

Oracle 使用PROFIL管理资源在大而复杂的多用户数据库环境中,因为用户众多,所以系统资源可能会成为影响性能的主要“瓶颈”。

为了有效地利用系统资源,应根据用户所承担任务的不同为其分配合理的资源。

PROFILE不仅可用于管理用户密码,还可用于管理用户资源。

需要注意,如果使用PROFILE管理资源,必须设置RESOURCE_LIMIT参数设置为TRUE以激活用资源限制。

由于该参数是动态参数,所以可以使用ALTER SYSTEM语句进行修改:SQL> show parameter resource_limitNAME TYPE V ALUE------------------------------------ ----------- -------------resource_limit boolean FALSESQL> alter system set resource_limit=true;系统已更改。

利用PROFILE配置文件,可以对以下系统资源进行限制:●CPU时间为了防止无休止地使用CPU时间,限制用户每次调用时使用的CPU时间以及在一次会话期间所使用的CPU时间。

●逻辑读为了防止过多使用系统的I/O操作,限制每次调用及会话时读取的逻辑数据块数目。

●用户的并发会话数。

●会话空闲的限制当一个会话被空闲的时间达到限制值时,当前事务被回滚,会话被终止并且所占用的资源被释放。

●会话可持续的时间如果一个会话的总计连接时间达到该限制值,当前事务被回滚,会话被终止并释放被占用的资源。

●会话的所使用的SGA空间限制。

大部分资源限制都可以在两个级别进行:会话级和调用级。

会话级资源限制是对用户在一个会话过程中所使用的资源进行限制;而调用级资源限制是对一个SQL语句在执行过程中所能使用的资源进行限制。

当一个会话或SQL语句占用的资源超过PROFILE文件中的限制时,Oracle将终止并回退当前的事务,然后向用户返回错误信息。

26-资源和口令管理

26-资源和口令管理

资源和口令管理 • 创建Profile
– CREATE PROFILE myprofile LIMIT xxx; – ALTER USER username PROFILE myprofile; – ALTER PROFILE myprofile LIMIT CPU_PER_CALL default; – DROP PROFILE myprofile;
详细解释
PROFILE • 删除PROFILE • DROP PROFILE profile [CASCADE]; • 分配配置文件 • 使用CREATE USER或ALTER USER命令可以给用户分配一个配 置文件。 详细解释
PROFILE • 查询PROFILE • USER_RESOURCE_LIMITS
Oracle Database Administration
资源和口令管理
大纲 • • • • 资源的类型 启用资源限制 建立和管理profile 口令管理
PROFILE
• PROFILE 是什么? • PROFILE是一种控制数据库用 户如何使用系统资源和口令的 方法. • Oracle允许管理员使用配置文 件(Profile)控制以下几种资 源的使用:
资源和口令管理 •
– – – –
口令管理
锁帐户 口令老化和期满 口令历史 口令复杂性
PROFILE
• PROFILE 的功能:
– Password aging and expiration – Password history – Password complexity verification – Account locking – CPU time – I/O operations – Idle time – Connect time – Memory space (private SQL area for MTS only) – Concurrent sessions

Oracle 使用 PROFILE对用户资源限制和密码限制的研究与探索

Oracle 使用 PROFILE对用户资源限制和密码限制的研究与探索

Oracle使用PROFILE对用户资源限制和密码限制的研究与探索1.用户创建语句PROFILE选项“引发的血案”如果大家细心的话,在创建用户的语法中有这么一个选项“PROFILE profile”。

下面是Oracle 11gR2官方文档中关于创建用户的语法描述(较之10g的文档可读性加强了,当然功能也同样有所增加):CREATE USER userIDENTIFIED { BY password| EXTERNALLY [ AS 'certificate_DN' | AS 'kerberos_principal_name' ]| GLOBALLY [ AS '[ directory_DN ]' ]}[ DEFAULT TABLESPACE tablespace| TEMPORARY TABLESPACE{ tablespace | tablespace_group_name }| { QUOTA { size_clause | UNLIMITED } ON tablespace }...| PROFILE profile| PASSWORD EXPIRE| ACCOUNT { LOCK | UNLOCK }[ DEFAULT TABLESPACE tablespace| TEMPORARY TABLESPACE{ tablespace | tablespace_group_name }| { QUOTA { size_clause | UNLIMITED } ON tablespace }...| PROFILE profile| PASSWORD EXPIRE| ACCOUNT { LOCK | UNLOCK }| ENABLE EDITIONS]...] ;2.提问:PROFILE选项是做什么用的呢?回答:简要的说,PROFILE在Oracle数据库对数据库用户能够使用的资源做进一步的限制的一种手段,如对连接到某个用户的session或sql所能使用的CPU资源进行控制,又如控制Oracle用户的密码管理策略等等……3.查看系统的默认PROFILE1)通过dba_profiles视图查看一下系统中默认都有哪些PROFILE数据库创建以后,系统中只会存在一个名为DEFAULT的默认PROFILE,在用户创建之后,如果不做特殊指定,每个用户的PROFILE都会默认的使用个默认的PROFILE。

Oracle 使用PROFILE管理密码

Oracle  使用PROFILE管理密码

Oracle 使用PROFILE管理密码当操作人员要连接到Oracle数据库时,需要提供用户和密码。

对于黑客或某些人而言,他们可能通过猜想或反复试验来破解密码。

为了加强密码的安全性,可以使用PROFILE文件管理密码。

PROFILE文件提供了一些密码管理选项,它们提供了强大的密码管理功能,从而确保密码的安全。

为了实现密码限制,必须首先建立PROFILE文件。

建立PROFILE 文件是使用CREATE PROFILE语句完成的,一般情况下,该语句是由DBA执行的,如果要以其他用户身份建立PROFILE文件,则要求该用户必须具有CREATE PROFILE系统权限。

使用PROFILE文件可以实现如下四种密码管理:账户锁定、密码的过期时间、密码历史和密码的复杂度。

1.账户锁定账户的锁定策略是指用户在连续输入多少次错误密码后,Oracle会自动锁定用户的账户,并且可以规定账户的锁定时间。

Oracle为锁定账户提供了以下两个参数:●FAILED_LOGIN_A TTEMPTS 该参数限制用户在登录到Oracle数据库时允许失败的次数。

一旦某用户尝试登录数据库达到该值,则系统会将该用户账户锁定。

●PASSWORD_LOCK_TIME 用于指定账户被锁定的天数。

例如,下面创建的PROFILE文件设置连续连接失败次数为3,超过该次数后,账户锁定时间为10天,并使用ALTER USER语句将PROFILE文件分配给用户DEVELOPER。

SQL> create profile lock_account limit2 failed_login_attempts 33 password_lock_time 10;配置文件已创建SQL> alter user developer profile lock_account;用户已更改。

当建立LOCK_ACCOUNT文件后,并将该PROFILE分配给用户DEVELOPER用户后,如果以账户DEVELOPER身份连接到数据库,并且连续连接失败3次后,Oracle将自动锁定该用户账户。

oracleprofile几个参数的解释-liurizhaooracle的日志-...

oracleprofile几个参数的解释-liurizhaooracle的日志-...

oracleprofile几个参数的解释-liurizhaooracle的日志-...FAILED_LOGIN_ATTEMPTS :当连续登陆失败次数达到该参数指定值时,用户被加锁;经过DBA解锁(或PASSWORD_LOCK_TIME天)后可继续使用PASSWORD_LIFE_TIME :口令的有效期(天),默认为UNLIMITEDPASSWORD_LOCK_TIME :帐户因FAILED_LOGIN_ATTEMPTS 锁定时,加锁天数PASSWORD_GRACE_TIME :口令修改的宽限期(天)PASSWORD_REUSE_TIME :口令被修改后原有口令隔多少天被重新使用,默认为UNLIMITEDPASSWORD_REUSE_MAX :口令被修改后原有口令被修改多少次才允许被重新使用。

PASSWORD_VERIFY_FUNCTION:口令效验函数FAILED_LOGIN_ATTEMPTS:The number of failed attempts to log in to the user account before the account is locked(单位:次数)PASSWORD_LIFE_TIME:The number of days the same password can be used for authentication(单位:天)PASSWORD_LOCK_TIME:the number of days an account will be locked after the specified number of consecutive failed login attempts defined by FAILED_LOGIN_ATTEMPTS(单位:天)PASSWORD_GRACE_TIME:The number of days after the grace period begins during which a warning is issued and login is allowed. If the password is not changed during the grace period, the password expires(单位:天)PASSWORD_REUSE_TIME:The number of days betweenreuses of a password(单位:天)PASSWORD_REUSE_MAX:The number of times a password must be changed before it can be reused(单位:次数)。

Oracle 权限设置

Oracle 权限设置

公告:Oracle 权限设置一、权限分类:系统权限:系统规定用户使用数据库的权限。

(系统权限是对用户而言)。

实体权限:某种权限用户对其它用户的表或视图的存取权限。

(是针对表或视图而言的)。

二、系统权限管理:1、系统权限分类:DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。

2、系统权限授权命令:[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system 用户的权限也可以被回收。

]例:SQL> connect system/managerSQL> Create user user50 identified by user50;SQL> grant connect, resource to user50;查询用户拥有哪里权限:SQL> select * from dba_role_privs;SQL> select * from dba_sys_privs;SQL> select * from role_sys_privs;删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除3、系统权限传递:增加WITH ADMIN OPTION选项,则得到的权限可以传递。

OracleProfile文件

OracleProfile文件

OracleProfile⽂件⼀、Profile⽂件概述:Profiles是Oracle安全策略的⼀个组成部分,当Oracle建⽴数据库时,会⾃动建⽴名称为Default的profile,当建⽴⽤户没有指定profile,那么oracle就将defalut分配给⽤户。

1、默认情况下,⽤户连接数据库,形成回话,使⽤CPU和内存资源是没有限制的。

但是在⼀些⾼并发的应⽤,且多个应⽤部署到同⼀服务器上时,因为服务器的CPU和内存是有限的,所以,⼤多数企业会根据应⽤对于⾃⾝的重要性,来对各个库进⾏内存和CPU的分配。

除此之外,还有⽤户的密码管理,⽤户的登录尝试次数,⽤户的密码锁定后多长时间释放,密码⽣命周期等参数都是通过Profile来设置的,当然这⾥只列举了⼀下部分!2、Profile⽂件主要规定了资源使⽤的限制和密码(也就是⼝令)使⽤的规则,Profile定义之后,可以做⽤到每个⽤户之上,对每个⽤户的安全活动进⾏限制。

3、下⾯Oracle建⽴数据库时,⽣成的名为Default的profile4、配置⽂件创建⽅法create profile 配置⽂件名 limit配置参数1 值1配置参数2 值25、配置⽂件的使⽤⽅法5.1、将配置⽂件中的规则指定给特定的⽤户,这⾥拿Failed_Login_Attempts(在账户被锁定前允许的登录次数)举例,其他的规则也是⼀样,如果要指定个特定的⽤户左图创建了⼀个test规则的profile,允许⽤户在被锁定前,登录三次,如果失败被锁定2天,并将这个profile赋给了scott⽤户,也就是说这个规则只是⽤于scott⽤户连续登录三次,失败后,账户被锁定,如何解锁⽤户请参考5.2、修改默认的profile,使其作⽤于所有的⽤户左图修改了安装数据库默认产⽣的profile⽂件,并修改了其参数,使所有的⽤户必须在13天内修改密码,否则将⽆法登录,如果不理解⼝令,下⾯有介绍。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle使用PROFILE对用户资源限制和密码限制的研究与探索1.用户创建语句PROFILE选项“引发的血案”如果大家细心的话,在创建用户的语法中有这么一个选项“PROFILE profile”。

下面是Oracle 11gR2官方文档中关于创建用户的语法描述(较之10g的文档可读性加强了,当然功能也同样有所增加):CREATE USER userIDENTIFIED { BY password| EXTERNALLY [ AS 'certificate_DN' | AS 'kerberos_principal_name' ]| GLOBALLY [ AS '[ directory_DN ]' ]}[ DEFAULT TABLESPACE tablespace| TEMPORARY TABLESPACE{ tablespace | tablespace_group_name }| { QUOTA { size_clause | UNLIMITED } ON tablespace }...| PROFILE profile| PASSWORD EXPIRE| ACCOUNT { LOCK | UNLOCK }[ DEFAULT TABLESPACE tablespace| TEMPORARY TABLESPACE{ tablespace | tablespace_group_name }| { QUOTA { size_clause | UNLIMITED } ON tablespace }...| PROFILE profile| PASSWORD EXPIRE| ACCOUNT { LOCK | UNLOCK }| ENABLE EDITIONS]...] ;2.提问:PROFILE选项是做什么用的呢?回答:简要的说,PROFILE在Oracle数据库对数据库用户能够使用的资源做进一步的限制的一种手段,如对连接到某个用户的session或sql所能使用的CPU资源进行控制,又如控制Oracle用户的密码管理策略等等……3.查看系统的默认PROFILE1)通过dba_profiles视图查看一下系统中默认都有哪些PROFILE数据库创建以后,系统中只会存在一个名为DEFAULT的默认PROFILE,在用户创建之后,如果不做特殊指定,每个用户的PROFILE都会默认的使用个默认的PROFILE。

sys@ora10g> select distinct profile from dba_profiles;PROFILE----------DEFAULT2)全面查看一下这个PROFILE都包含哪些限制定义sys@ora10g> select * from dba_profiles;PROFILE RESOURCE_NAME RESOURCE LIMIT---------- -------------------------------- -------- -----------------DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITEDDEFAULT SESSIONS_PER_USER KERNEL UNLIMITEDDEFAULT CPU_PER_SESSION KERNEL UNLIMITEDDEFAULT CPU_PER_CALL KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITEDDEFAULT IDLE_TIME KERNEL UNLIMITEDDEFAULT CONNECT_TIME KERNEL UNLIMITEDDEFAULT PRIVATE_SGA KERNEL UNLIMITEDDEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITEDDEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITEDDEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITEDDEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULLDEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITEDDEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED16 rows selected.3)结论通过上面的查看,可以得到这个系统默认的PROFILE “DEFAULT”的配臵信息只对密码的错误尝试次数做了限制(最多可以错误输错10次密码),如果我们启用了PROFILE(下面有介绍如何启用和停止PROFILE),默认的限制只有这些。

如果想要改变限制条件,有两种方法:第一种方法是可以对这个默认的PROFILE做个性化的调整;第二种方法是再重新定制一个新的PROFILE满足新的需求。

4.对创建PROFILE的标准语法做一下“解剖麻雀”(更多细节可以参考Oracle官方文档)1)创建PROFILE的语法如下:CREATE PROFILE profileLIMIT { resource_parameters 对资源的限制| password_parameters 对密码的限制}...;2)对数据库资源做限制时,下面是全部可用的参数:{ { SESSIONS_PER_USER 每个用户名所允许的并行会话数| CPU_PER_SESSION 一个会话一共可以使用的CPU时间,单位是百分之一秒| CPU_PER_CALL 一次SQL调用(解析、执行和获取)允许使用的CPU时间| CONNECT_TIME 限制会话连接时间,单位是分钟| IDLE_TIME 允许空闲会话的时间,单位是分钟| LOGICAL_READS_PER_SESSION 限制会话对数据块的读取,单位是块| LOGICAL_READS_PER_CALL 限制SQL调用对数据块的读取,单位是块| COMPOSITE_LIMIT “组合打法”}{ integer | UNLIMITED | DEFAULT }| PRIVATE_SGA 限制会话在SGA中Shared Pool中私有空间的分配{ size_clause | UNLIMITED | DEFAULT }}3)对密码做限制时,下面是全部可用的参数:{ { FAILED_LOGIN_ATTEMPTS 帐户被锁定之前可以错误尝试的次数| PASSWORD_LIFE_TIME 密码可以被使用的天数,单位是天,默认值180天| PASSWORD_REUSE_TIME 密码可重用的间隔时间(结合PASSWORD_REUSE_MAX)| PASSWORD_REUSE_MAX 密码的最大改变次数(结合PASSWORD_REUSE_TIME)| PASSWORD_LOCK_TIME 超过错误尝试次数后,用户被锁定的天数,默认1天| PASSWORD_GRACE_TIME 当密码过期之后还有多少天可以使用原密码}{ expr | UNLIMITED | DEFAULT }| PASSWORD_VERIFY_FUNCTION{ function | NULL | DEFAULT }}5.语法已经了然于胸,那么我们来实际创建一个PROFILE(这里的名字我们称其为:sec_profile),在感性认识的同时一同探索一下在这个过程中会遇到的一些有趣现象。

1)尝试创建一个混合型的PROFILE(包含资源限制和密码限制)sys@ora10g> CREATE PROFILE sec_profile LIMIT2 SESSIONS_PER_USER UNLIMITED3 CPU_PER_SESSION UNLIMITED4 CPU_PER_CALL 60005 CONNECT_TIME 606 LOGICAL_READS_PER_SESSION DEFAULT7 LOGICAL_READS_PER_CALL 60008 COMPOSITE_LIMIT 60000009 PRIVATE_SGA 66K10 FAILED_LOGIN_ATTEMPTS 611 PASSWORD_LIFE_TIME 6012 PASSWORD_REUSE_TIME 6013 PASSWORD_REUSE_MAX 514 PASSWORD_LOCK_TIME 1/2415 PASSWORD_GRACE_TIME 1016 PASSWORD_VERIFY_FUNCTION verify_function17 /CREATE PROFILE sec_profile LIMIT*ERROR at line 1:ORA-07443: function VERIFY_FUNCTION not found2)报错原因为什么会报错?错误提示很清楚,VERIFY_FUNCTION这个函数不存在。

既然知道不存在,那我们如何创建它呢?回答:VERIFY_FUNCTION函数是通过utlpwdmg.sql脚本创建的,该脚本所在的目录是$ORACLE_HOME/rdbms/admin/3)创建密码复杂性检验函数VERIFY_FUNCTION我们使用utlpwdmg.sql脚本创建以下这个VERIFY_FUNCTION密码复杂度校验函数sys@ora10g> @?/rdbms/admin/utlpwdmg.sqlFunction created.Profile altered.4)utlpwdmg.sql脚本中的小秘密细心的您在执行utlpwdmg.sql脚本的过程中一定发现了有一个“Profile altered”的提示,难道这个脚本修改了某个PROFILE信息么?正如您所料,它修改了系统的默认PROFILE “DEFAULT”,再次查看一下现在的DEFAULT的定义信息:sys@ora10g> select * from dba_profiles;PROFILE RESOURCE_NAME RESOURCE LIMIT---------- -------------------------------- -------- -----------------DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITEDDEFAULT SESSIONS_PER_USER KERNEL UNLIMITEDDEFAULT CPU_PER_SESSION KERNEL UNLIMITEDDEFAULT CPU_PER_CALL KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITEDDEFAULT IDLE_TIME KERNEL UNLIMITEDDEFAULT CONNECT_TIME KERNEL UNLIMITEDDEFAULT PRIVATE_SGA KERNEL UNLIMITEDDEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 3DEFAULT PASSWORD_LIFE_TIME PASSWORD 60DEFAULT PASSWORD_REUSE_TIME PASSWORD 1800DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITEDDEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTION DEFAULT PASSWORD_LOCK_TIME PASSWORD .0006DEFAULT PASSWORD_GRACE_TIME PASSWORD 1016 rows selected.与系统创建时的DEFAULT PROFILE相比较,之前只有10次密码输入错误的限制,执行完成这个函数创建之后,我们发现系统默认的PROFILE已经对系统有了一个非常严格的约束。

相关文档
最新文档