使用profiles概要文件控制用户资源

长平狐 发布于 2013/09/17 15:11
阅读 312
收藏 1

一、用户的安全控制域

包括用户默认表空间,用户排序临时表空间,表空间配额,账户上锁,资源限制,直接权限,角色权限。

概要文件:profiles,一组命名了的口令和资源限制。通过CREATE USER 或ALTER USER赋予用户,概要文件可以被激活或关闭。

使用概要文件可以将用户按安全控制和资源使用要求分成若干个组,根据不同需要创建不同概要文件,再将概要文件赋予相关用户。

创建数据库时,自动创建了一个DEFAULT默认概要文件

概要文件只能赋予用户不能赋予角色,创建用户时未指定会将默认概要文件赋予

步骤:

利用CREATEPROFILE 命令创建一个概要文件,定义资源和口令的限制。 使用CREATE USER 或ALTER USER将概要文件赋予用户。

并且需要在初始化参数文件将RESOURCE_LIMIT设置TRUE。

alter system set resource_limit=true;

ORACLE 11G中默认未开启。

SQL> show parameter resource_limit;

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

resource_limit                       boolean     FALSE

二、资源限制的设置

概要文件的资源限制可以加在会话一级,超过会话级的资源限制时,系统返回ORA-02391:exceeded simjltaneous session_per_user limit.服务器与用户连接断开。

会话级可以设置:

sessions_per_user   每个用户名所允许并行会话数

cpu_per_session            总共的CPU时间,单位1%S。

idle_time        无活动时间,单位分,只计算服务器进程

connect_time         连接时间,单位分

logical_reads_per_session物理磁盘和逻辑内存读的数据块数。

调用一级设置的资源限制强加在每执行一条SQL语句的调用上,超过调用级资源限制时,ORACLE系统挂起所处理语句,回滚语句,之前语句正常,用户会话还连接。

可设置cpu_per_call每个调用的CPU时间,单位1%S。

logical_reads_per_call 每个调用可读的数据块数。

#########################################

三、创建概要文件示例

名字test_prof,使用此概要文件的用户同时可打开3个连接,每个会话最多可用CPU时间16800*1%S=168秒。

每个会话最多可读23688个数据块。每个会话连接最多180分钟三小时。每个会话无活动时间不超过30分钟。

查看有哪些概要文件——我是在完成下面实验后查询的。

SQL> select * from dba_profiles whereresource_name='FAILED_LOGIN_ATTEMPTS';

PROFILE         RESOURCE_NAME             RESOURCE LIMIT

--------------- --------------------------------- --------------------

DEFAULT         FAILED_LOGIN_ATTEMPTS     PASSWORD 10

MONITORING_PROF FAILED_LOGIN_ATTEMPTS     PASSWORD UNLIMITED

ILE

TEST_PROF       FAILED_LOGIN_ATTEMPTS     PASSWORD DEFAULT

TEST2_PROF      FAILED_LOGIN_ATTEMPTS     PASSWORD 4

 

资源管理

配置文件创建:

SQL> create profile test_prof limitsessions_per_user 3 cpu_per_session 16800 logical_reads_per_session 23688 connect_time180 idle_time 30;

 

RESOURCE列显示为KERNEL时,表示是一个资源限制。PASSWORD表示是口令限制。

SQL> select * from dba_profiles whereprofile like 'TEST%';

 

PROFILE         RESOURCE_NAME             RESOURCE LIMIT

--------------- --------------------------------- --------------------

TEST_PROF       COMPOSITE_LIMIT           KERNEL   DEFAULT

TEST_PROF       SESSIONS_PER_USER         KERNEL   3

TEST_PROF       CPU_PER_SESSION           KERNEL   16800

TEST_PROF       CPU_PER_CALL              KERNEL   DEFAULT

TEST_PROF       LOGICAL_READS_PER_SESSION KERNEL   23688

TEST_PROF       LOGICAL_READS_PER_CALL    KERNEL  DEFAULT

TEST_PROF       IDLE_TIME                 KERNEL   30

TEST_PROF       CONNECT_TIME              KERNEL   180

 

口令管理

口令加锁通过两个参数实现FAILED_LOGIN_ATTEMPTS 在账户锁定前登陆失败的次数

PASSWORD_LOCK_TIME,登陆失败达到次数后锁定的天数

口令过期通过两个参数PASSWORD_LIFE_TIME口令可以使用的天数,达到后口令做废。

PASSWORD_GRACE_TIME 口令过期后第一次成功使用原口令登陆后要改变口令的宽限天数。

口令历史:PASSWORD_REUSE_TIME口令可以重用前的天数

PASSWORD_REUSE_MAX口令可以重用前最大变化数。 两个参数不能同时为DEFAULT或UNLIMITED

口令复杂性检验PASSWORD_VERIFY_FUNCTION,新口令赋予用户前验证口令复杂性是否满足安全要求的一个PLSQL函数。


创建概要文件名为test2_prof。最大登陆失败次数3.达到3次锁定一天,unlimited则为永久锁定。口令可以使用30天。口令要在做废60天后可以重用。口令过期后4天内可以以原口令登陆。

SQL> create profile test2_prof limitfailed_login_attempts 3 password_lock_time 1 password_life_time 30 password_reuse_time60 password_grace_time 3;


SQL> select * from dba_profiles whereprofile like 'TEST%' and resource_type

SSWORD';

 

PROFILE         RESOURCE_NAME             RESOURCE LIMIT

--------------- --------------------------------- --------------------

TEST2_PROF      FAILED_LOGIN_ATTEMPTS     PASSWORD 3

TEST_PROF       FAILED_LOGIN_ATTEMPTS     PASSWORD DEFAULT

TEST2_PROF      PASSWORD_LIFE_TIME        PASSWORD 30

TEST_PROF       PASSWORD_LIFE_TIME        PASSWORD DEFAULT

TEST2_PROF      PASSWORD_REUSE_TIME       PASSWORD 60

TEST_PROF       PASSWORD_REUSE_TIME       PASSWORD DEFAULT

TEST2_PROF      PASSWORD_REUSE_MAX        PASSWORD DEFAULT

TEST_PROF       PASSWORD_REUSE_MAX        PASSWORD DEFAULT

TEST2_PROF      PASSWORD_VERIFY_FUNCTION  PASSWORD DEFAULT

TEST_PROF       PASSWORD_VERIFY_FUNCTION  PASSWORD DEFAULT

TEST2_PROF      PASSWORD_LOCK_TIME        PASSWORD 1

TEST_PROF       PASSWORD_LOCK_TIME        PASSWORD DEFAULT

TEST2_PROF      PASSWORD_GRACE_TIME       PASSWORD 3

TEST_PROF       PASSWORD_GRACE_TIME       PASSWORD DEFAULT

 

已选择14行。

更改profile文件中参数

SQL> alter profile test2_prof limitfailed_login_attempts 4 password_life_time 90 password_grace_time 90;


 

SQL> select * from dba_profiles whereprofile like 'TEST%' and resource_type='PA

SSWORD';

 

PROFILE         RESOURCE_NAME             RESOURCE LIMIT

--------------- --------------------------------- --------------------

TEST2_PROF      FAILED_LOGIN_ATTEMPTS     PASSWORD 4

TEST_PROF       FAILED_LOGIN_ATTEMPTS     PASSWORD DEFAULT

TEST2_PROF      PASSWORD_LIFE_TIME        PASSWORD 90

TEST_PROF       PASSWORD_LIFE_TIME        PASSWORD DEFAULT

TEST2_PROF      PASSWORD_REUSE_TIME       PASSWORD 60

TEST_PROF       PASSWORD_REUSE_TIME       PASSWORD DEFAULT

TEST2_PROF      PASSWORD_REUSE_MAX        PASSWORD DEFAULT

TEST_PROF       PASSWORD_REUSE_MAX        PASSWORD DEFAULT

TEST2_PROF      PASSWORD_VERIFY_FUNCTION  PASSWORD DEFAULT

TEST_PROF       PASSWORD_VERIFY_FUNCTION  PASSWORD DEFAULT

TEST2_PROF      PASSWORD_LOCK_TIME        PASSWORD 1

TEST_PROF       PASSWORD_LOCK_TIME        PASSWORD DEFAULT

TEST2_PROF      PASSWORD_GRACE_TIME       PASSWORD 90

TEST_PROF       PASSWORD_GRACE_TIME       PASSWORD DEFAULT

 

已选择14行。

###############################################################################

删除配置文件,如已经赋予用户要用CASCADE参数。

SQL> drop profile test_prof;

四、创建一个包含口令及资源限制的profile test_prof:

名字test_prof,最大错误次数3.达到3次锁定后永久锁定,管理员可以打开。口令有效期91天。口令过有效期后28天后能重新使用,即不能与原口令相同。口令过有效期后7天内可以登陆、修改口令,超过后未登陆修改则无法登陆系统。每个用户最多开启3个连接。每个会话使用CPU时间不超过16800*1%S=168秒。每个会话最多查阅23688数据块。每个连接最多为180分=3小时。每个用户连接后无活动时间为30分钟,超过ORACLE断开连接回滚未提交事务。

SQL> create profile test_prof limitfailed_login_attempts 3 password_lock_time unlimited password_life_time 91password_reuse_time 28 password_grace_time 7 sessions_per_user 3 cpu_per_session 16800logical_reads_per_session 23688 connect_time 180 idle_time 30;

SQL> select * from dba_profiles whereprofile = 'TEST_PROF';

 

PROFILE         RESOURCE_NAME             RESOURCE LIMIT

--------------- --------------------------------- --------------------

TEST_PROF       COMPOSITE_LIMIT           KERNEL   DEFAULT

TEST_PROF       SESSIONS_PER_USER         KERNEL   3

TEST_PROF       CPU_PER_SESSION           KERNEL   16800

TEST_PROF       CPU_PER_CALL              KERNEL   DEFAULT

TEST_PROF       LOGICAL_READS_PER_SESSION KERNEL   23688

TEST_PROF       LOGICAL_READS_PER_CALL    KERNEL  DEFAULT

TEST_PROF       IDLE_TIME                 KERNEL   30

TEST_PROF       CONNECT_TIME              KERNEL   180

TEST_PROF       PRIVATE_SGA               KERNEL   DEFAULT

TEST_PROF       FAILED_LOGIN_ATTEMPTS     PASSWORD 3

TEST_PROF       PASSWORD_LIFE_TIME        PASSWORD 91

TEST_PROF       PASSWORD_REUSE_TIME       PASSWORD 28

TEST_PROF       PASSWORD_REUSE_MAX        PASSWORD DEFAULT

TEST_PROF       PASSWORD_VERIFY_FUNCTION  PASSWORD DEFAULT

TEST_PROF       PASSWORD_LOCK_TIME        PASSWORD UNLIMITED

TEST_PROF       PASSWORD_GRACE_TIME       PASSWORD 7

 

已选择16行。


原文链接:http://blog.csdn.net/q947817003/article/details/11195433
加载中
返回顶部
顶部