ORACLE Profile 及权限(2)
时间:2018-10-31 21:56 来源:ChinaZ 作者:网络 点击:次
SQL> alter system set resource_limit=true; 2.使用create profile创建一个定义对数据库资源进行限制的profile。 3.使用create user 或alter user命令把profile分配给用户。 三、查看系统的默认PROFILE 1、通过dba_profiles视图查看一下系统中默认都有哪些PROFILE 数据库创建以后,系统中只会存在一个名为DEFAULT的默认PROFILE,在用户创建之后,如果不做特殊指定,每个用户的PROFILE都会默认的使用个默认的PROFILE。 sys@oral> select distinct profile from dba_profiles; 2、全面查看这个 PROFILE 包含哪些限制定义 sys@oral> col PROFILE for a12 sys@oral> col RESOURCE_NAME for a25 sys@oral> col LIMIT for a15 sys@oral> select * from dba_profiles order by 1,2; 3、结论:DEFAULT PROFILE 只对密码的错误尝试次数做了限制(最多可以错误输错10次密码)。如想改变限制条件,有两种方法:第一种方法是对默认的PROFILE做个性化调整;第二种方法是重新定制一个新的PROFILE。 四、创建 profile 的语法如下: CREATE PROFILE profile LIMIT { resource_parameters 对资源的限制 | password_parameters 对密码的限制 }... ; <resource_parameters> {{ SESSIONS_PER_USER 每个用户名并行会话数 | CPU_PER_SESSION 每会话可用的CPU时间,单位0.01秒 | CPU_PER_CALL 一次SQL调用(解析、执行和获取)允许的CPU时间 | 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 密码使用天数,默认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 } } 五、部分解释: profile:配置文件的名称。Oracle数据库以以下方式强迫资源限制: 1.如果用户超过了connect_time或idle_time的会话资源限制,数据库就回滚当前事务,并结束会话。用户再次执行命令,数据库则返回一个错误 2.如果用户试图执行超过其他的会话资源限制的操作,数据库放弃操作,回滚当前事务并立即返回错误。用户之后可以提交或回滚当前事务,必须结束会话。 提示:可以将一条分成多个段,如1小时(1/24天)来限制时间,可以为用户指定资源限制,但是数据库只有在参数生效后才会执行限制。 Unlimited:分配该profile的用户对资源使用无限制,当使用密码参数时,unlimited意味着没有对参数加限制。 Default:指定为default意味着忽略对profile中的一些资源限制,Default profile初始定义对资源不限制,可以通过alter profile命令来改变。 Resource_parameter部分 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 (责任编辑:liangzh) |