Oracle中profile的作用?
profile的作用是什么? 如何使用profile控制用户的权限?
请举例说明?
create profile new_profile limit password_reuse_max 10 password_reuse_time 30; 2.设置profile资源限制: create profile app_user limit sessions_per_user unlimited cpu_per_session unlimited cpu_per_call 3000 connect_time 45 logical_reads_per_session default logical_reads_per_call 1000 private_sga 15k composite_limit 5000000; 总的resource cost不超过五百万service units。计算总的resource cost的公式由alter resource cost语句来指定。 3.设置密码限制profile: create profile app_users2 limit failed_login_attempts 5 password_life_time 60 password_reuse_time 60 password_reuse_max 5 password_verify_function verify_function password_lock_time 1/24 password_grace_time 10; 4.将配置文件分配给用户: SQL> alter user dinya profile app_user; 用户已更改。 SQL> SQL> alter user dinya profile default; 用户已更改。 SQL>
1、目的:
Oracle系统中的profile可以用以对用户所能施用的数据库资源进展限制,运用Create Profile下令创办一个Profile,用它来兑现对数据库资源的限制运用,如果把该profile分配给用户,则该用户所能施用的数据库资源都在该 profile的限制以内。
2、条件:
创设profile务必要有CREATE PROFILE的系统权限。
为用户指定资源限制,务必:
一.动态地施用alter system或施用初始化参数resource_limit使资源限制奏效。该改变对密码资源无效,密码资源老是可用。
SQL> show parameter resource_limit
NAME TYPE VALUE
———————————— ———– ——————————
resource_limit boolean FALSE
SQL> alter system set resource_limit=true;
系统已更动。
SQL> show parameter resource_limit;
NAME TYPE VALUE
———————————— ———– ——————————
resource_limit boolean TRUE
SQL>
二.应用create profile创办一个定义对数据库资源开展限制的profile。
三.施用create user 或alter user下令把profile分配给用户。
3、语法:
CREATE PROFILE profile
LIMIT { resource_parameters
| password_parameters
}
[ resource_parameters
| password_parameters
]... ;
{ { SESSIONS_PER_USER
| CPU_PER_SESSION
| CPU_PER_CALL
| CONNECT_TIME
| IDLE_TIME
| LOGICAL_READS_PER_SESSION
| LOGICAL_READS_PER_CALL
| COMPOSITE_LIMIT
}
{ integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA
{ integer [ K | M ] | UNLIMITED | DEFAULT }
}
< password_parameters >
{ { FAILED_LOGIN_ATTEMPTS
| PASSWORD_LIFE_TIME
| PASSWORD_REUSE_TIME
| PASSWORD_REUSE_MAX
| PASSWORD_LOCK_TIME
| PASSWORD_GRACE_TIME
}
{ expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION
{ function | NULL | DEFAULT }
}
4、语法解释:
profile:配置文件的姓名。Oracle数据库以以次形式强逼资源限制:
一.如其用户超过了connect_time或idle_time的对话资源限制,数据库就回滚现阶段事宜,并完事对话。用户再度执行命令,数据库则回来一个差错,
二.如若用户意欲施行超过其余的对话资源限制的操作,数据库抛却操作,来滚目前事宜并立马回来错处。用户以后可以交付或回滚目前事宜,务必完事对话。
揭示:可以将一条分为多个段,如一钟头(1/24天)来限制时间,可认为用户指定资源限制,但是数据库唯有在参数收效后才会实施限制。
Unlimited:分配该profile的用户对资源施用无限制,应运用密码参数时,unlimited意味没对参数加限制。
Default:指定为default象征忽略对profile中的一些资源限制,Default profile初步定义对资源不限制,可以经过alter profile下令来改变。
Resource_parameter一部分
Session_per_user:指定限制用户的并发对话的数额。
Cpu_per_session:指定对话的CPU时间限制,组织为百分之1秒。
Cpu_per_call:指定一次调用(解析、施行和提取)的CPU时间限制,机关为百分之1秒。
Connect_time:指定对话的总的连接时间,以分钟为机构。
Idle_time:指定对话容许延续不活动的总的时间,以分钟为机关,超过该时间,对话将断开。但是长时间运作查询和其余操作的不受此限制。
Logical_reads_per_session:指定一个对话容许读的数据块的数额,包括从内存储器和磁盘读的全部数据块。
Logical_read_per_call:指定一次施行SQL(解析、施行和提取)调用所容许读的数据块的最大数目。
Private_sga:指定一个对话可以在共享池(SGA)中所容许分配的最大空间,以字节为组织。(该限制只在运用共享服务器构造时才有效,对话在SGA中的私得空间包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)。
Composite_limit:指定一个对话的总的资源耗费,以service units部门示意。Oracle数据库以有益的模式计算 cpu_per_session,connect_time,logical_reads_per_session和private-sga总的 service units
Password_parameter一部分:
Failed_login_attempts:指定在帐户被锁定先头所容许尝试登陆的的最大次数。
Password_life_time:指定同一密码所容许运用的天数。如其与此同时指定了password_grace_time参数,如果在 grace period内没改变密码,则密码会失灵,连接数据库被回绝。如其没设立password_grace_time参数,默认值unlimited将挑动一个数据库警告,但是容许用户持续联接。
Password_reuse_time和password_reuse_max:这两个参数务必相互联系关系设立,password_reuse_time指定了密码不能重用前的天数,而password_reuse_max则指定了目前密码被重用预先密码改变的次数。两个参数都必须被设立为整数。
一.如其为这两个参数指定了整数,则用户不能重用密码直到密码被改变了password_reuse_max指定的次数之后在password_reuse_time指定的时间内。
如:password_reuse_time=30,password_reuse_max=十,用户可以在30天之后重用该密码,要求密码务必被改变超过10次。
二.如若指定了内中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。
三.如其指定了此中的一个为default,Oracle数据库施用定义在profile中的默认值,默许情况下,全部的参数在profile中都被设立为unlimited,如其没改变profile默认值,数据库对该值老是默许为unlimited。
四.如若两个参数都设立为unlimited,则数据库忽略他们。
Password_lock_time:指定登陆尝试失败次数抵达后帐户的缩定时间,以天为机关。
Password_grace_time:指定宽限天数,数据库下发警告到登陆失灵前的天数。如若数据库密码在这当中没被批改,则逾期会失灵。
Password_verify_function:该字段容许将复杂的PL/SQL密码证验脚本做为参数传接到create profile话语。Oracle数据库提供了一个默许的脚本,但是自各儿可以创造自个儿的证验守则或应用第三方软件印证。对Function姓名,指定的是密码证验守则的姓名,指定为Null则寓意不施用密码应验效能。如若为密码参数指定表达式,则该表达式可以是随便格式,去除数据库标量子查询。
5、举例来说:
一.创设一个profile:
create profile new_profile
limit password_reuse_max 十
password_reuse_time 30;
二.设立profile资源限制:
create profile app_user limit
sessions_per_user unlimited
cpu_per_session unlimited
cpu_per_call 3000
connect_time 45
logical_reads_per_session default
logical_reads_per_call 1000
private_sga 15k
composite_limit 5000000;
总的resource cost不超过五百万service units。计算总的resource cost的公式由alter resource cost话语来指定。
三.设立密码限制profile:
create profile app_users二 limit
failed_login_attempts 五
password_life_time 60
password_reuse_time 60
password_reuse_max 五
password_verify_function verify_function
password_lock_time 1/24
password_grace_time 十;
四.将配置文件分配给用户:
SQL> alter user dinya profile app_user;
用户已更动。
SQL>
SQL> alter user dinya profile default;
用户已更动。