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管理资源在大而复杂的多用户数据库环境中,因为用户众多,所以系统资源可能会成为影响性能的主要“瓶颈”。
为了有效地利用系统资源,应根据用户所承担任务的不同为其分配合理的资源。
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-资源和口令管理
资源和口令管理 • 创建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对用户资源限制和密码限制的研究与探索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文件管理密码。
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的日志-...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 权限设置一、权限分类:系统权限:系统规定用户使用数据库的权限。
(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。
(是针对表或视图而言的)。
二、系统权限管理: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⽂件⼀、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天内修改密码,否则将⽆法登录,如果不理解⼝令,下⾯有介绍。
Oracle 密码复杂度的设置
Oracle 密码复杂度的设置--某些情况下,需要强制Oracle数据库中的某些用户(例如 sys, system, 或者其他)的密码,不能太简单。
--虽然作为数据库管理人员,不会设置太简单的密码。
但是,当需要数据库级别,不允许设置太简单的密码,如果设置太简单的密码,则拒绝本次操作。
首先:先查询一下. 当前数据库中,都有哪些 profileSELECTDISTINCT profileFROMdba_profiles;一般情况下,所有的用户,是使用一个名字叫 DEFAULT 的 profile下面这个语句,查询 DEFAULT 的 profile ,密码方面的设置。
SQL> select2 RESOURCE_NAME,3 LIMIT4 from5 dba_profiles6 where7 profile='DEFAULT'8 AND RESOURCE_TYPE = 'PASSWORD';RESOURCE_NAME LIMIT-------------------------------- ------------FAILED_LOGIN_ATTEMPTS UNLIMITEDPASSWORD_LIFE_TIME UNLIMITEDPASSWORD_REUSE_TIME UNLIMITEDPASSWORD_REUSE_MAX UNLIMITEDPASSWORD_VERIFY_FUNCTION NULLPASSWORD_LOCK_TIME UNLIMITEDPASSWORD_GRACE_TIME UNLIMITED已选择7行。
注意到,那个 PASSWORD_VERIFY_FUNCTION 的 LIMIT 是 NULL也就是没有任何的密码复杂度限制。
由于听说,直接执行那个 utlpwdmg.sql,会修改 DEFAULT 这个 PROFILE,从而导致影响所有的用户。
权限管理及资源限制管理几个方面介绍Oracle数据库的安全性策略
又如,创建用户rscuser: SQL>CREATE USER rscuser IDENT工F工ED EXTERNALLY DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users; 创建的用户rscuser采用操作系统验证,存储 对象默认使用users表空间,且在该表空间上所 能使用的存储空间不受限制,临时表空间为 temp。
例如: SQL>DROP USER testuser; 以上命令会删除用户testuser,但是,如果该用户拥有 数据库对象,则删除时必须带有CASCADE选项,否则 会显示如下错误信息: ORA一01922:CASCADE must be specified to drop’TESTUSER’ 应该使用如下格式删除命令: SQL>DROP USER testuser CASCADE; 需要注意的是,当前正在连接的用户是不能删除的。 通过数据字典dba_users、dba ts quotas、user_users、 user_ts_quotas等可以查询出用户相关信息。
表8.2系统权限举例
系统权限
CREATE TABLESPACE CREATE USER CREATE TABLE CREATE PROCEDURE CREATE TRIGGER CREATE ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE CREATE DATABASE LINK CREATE PUBLIC DATABASE LINK CREATE SYNONYM CREATE PUBLIC SYNONYM
SYSOPER
SYSDBA
8.1.3 修改用户
oracleProfile使用(限制用户权限)
oracle profile使用如何限制oracle中用户的资源的使用(包括连接时间和空闲时间等)可以创建不同的资源限制,最好将ALTER SYSTEM SET RESOURCE_LIMIT=TRUE。
写在init文件中:RESOURCE_LIMIT=TRUE ,不然下次启动可能失效。
create profile low_limits limitidle_time 10 --分钟connect_time unlimited; --分钟然后把某种配置文件赋给某个用户:alter user youruser profile low_limits;然后可以查看:select profile from dba_users where username='YOURUSER';select * from dba_profile where profile='low_limits';一、目的:Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
二、条件:创建profile必须要有CREATE PROFILE的系统权限。
为用户指定资源限制,必须:1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。
该改变对密码资源无效,密码资源总是可用。
SQL> show parameter resource_limitNAME TYPE VALUE------------------------------------ ----------- ------------------------------ resource_limit boolean FALSESQL> alter system set resource_limit=true;系统已更改。
Oracle 显示PROFILE信息
Oracle 显示PROFILE信息在PROFILE文件被创建后,其信息被存储在数据字典中。
通过查询这些数据字典,可以了解PROFILE文件的信息。
1.显示用户的PROFILE信息建立或修改用户时,可以为用户分配PROFILE文件。
如果没有为用户分配PROFILE 文件,Oracle会自动将DEFAULT分配给用户。
通过查询数据字典视图DBA_USERS,可以显示用户使用的PROFILE文件。
例如,下面的语句将显示用户DEVELOPER所使用的PROFILE文件:SQL> select profile2 from dba_users3 where username='DEVELOPER';2.显示PROFILE的密码和资源限制建立或修改PROFILE文件时,Oracle会将PROFILE参数存放到数据字典中。
通过查询DBA_PROFILES,可以显示PROFILE的密码限制、资源限制信息。
例如,下面的语句将显示RESOURCE_LIMIT文件的密码和资源限制:SQL> column limit format a20SQL> select resource_name,resource_type,limit2 from dba_profiles3 where profile='RESOURCE_LIMIT';RESOURCE_NAME RESOURCE LIMIT-------------------------------- -------- --------------------COMPOSITE_LIMIT KERNEL DEFAULTSESSIONS_PER_USER KERNEL 5CPU_PER_SESSION KERNEL 15000CPU_PER_CALL KERNEL 500LOGICAL_READS_PER_SESSION KERNEL UNLIMITEDLOGICAL_READS_PER_CALL KERNEL 1000IDLE_TIME KERNEL 30CONNECT_TIME KERNEL 960PRIV A TE_SGA KERNEL DEFAULTFAILED_LOGIN_ATTEMPTS PASSWORD 5PASSWORD_LIFE_TIME PASSWORD 30PASSWORD_REUSE_TIME PASSWORD DEFAULTPASSWORD_REUSE_MAX PASSWORD DEFAULTPASSWORD_VERIFY_FUNCTION PASSWORD DEFAULTPASSWORD_LOCK_TIME PASSWORD DEFAULTPASSWORD_GRACE_TIME PASSWORD DEFAULT已选择16行。
Oracle Profile 使用详解
一、目的:Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
二、条件:创建profile必须要有CREATE PROFILE的系统权限。
为用户指定资源限制,必须:1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。
该改变对密码资源无效,密码资源总是可用。
SQL> show parameter resource_limitNAME TYPE VALUE------------------------------------ ----------- ------------------------------resource_limit boolean FALSESQL> alter system set resource_limit=true;系统已更改。
SQL> show parameter resource_limit;NAME TYPE VALUE------------------------------------ ----------- ------------------------------resource_limit boolean TRUESQL>2.使用create profile创建一个定义对数据库资源进行限制的profile。
3.使用create user 或alter user命令把profile分配给用户。
三、语法:CREATE PROFILE profileLIMIT { resource_parameters| password_parameters}[ resource_parameters| password_parameters]... ;<resource_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 }}四、语法解释:profile:配置文件的名称。
用户管理profile文件
使用profile 管理用户口令
============================
profile是口令限制,资源限制的命令集合,当建立数据库的时候,oracle会自动建立名为default的profile,当建立用户没有指定profile选项时,系统会自动将default分配给用户。
1 账户锁定
为了让用户定期修改自己的密码,可是使用终止口令来完成,dba来完成此任务
例子:让xiaoming 每10天更改一次密码,宽限期2天
create profile myp limit password_life_time 10 password_grace_time 2;
alter user xiaoming profile myp;
=======================================
4 口令历史
如果希望用户修改的密码不能使用以前的密码,可以使用口令历史,将旧的密码都放在数据字典里面,当新旧密码一样的时候,提示用户重新输入密码。
create profile pwd_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;
alter user xiaoming profile lock_account;
2ቤተ መጻሕፍቲ ባይዱ解锁
===================================
alter user xiaoming account unlock;
3 终止口令
====================================
使用ORACLE的PROFILE限制ORACLE用户
使用ORACLE的PROFILE限制ORACLE用户ORACLE的PROFILE文件是限制数据库用户使用的资源的一种手段。
如:控制session或sql能使用的CPU、控制用户的密码管理策略等。
数据库创建后,系统则存在名为DEFAULT的默认PROFILE,若不做特殊指定,创建用户时用户默认使用的PROFILE就是DEFAULT。
查看视图dba_profiles可找出数据库中有哪些PROFILE。
SQL>select distinct profile from dba_profiles;PROFILE--------------------MONITORING_PROFILEDEFAULT查看所有的PROFILESQL>select*from dba_profiles order by PROFILE;PROFILE RESOURCE_NAME RESOURCE LIMIT--------------------------------------------------------------------DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITEDDEFAULT PASSWORD_LOCK_TIME PASSWORD1DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULLDEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITEDDEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITEDDEFAULT PASSWORD_LIFE_TIME PASSWORD180DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITEDDEFAULT PRIVATE_SGA KERNEL UNLIMITEDDEFAULT CONNECT_TIME KERNEL UNLIMITEDDEFAULT IDLE_TIME KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITEDDEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITEDDEFAULT CPU_PER_CALL KERNEL UNLIMITEDDEFAULT CPU_PER_SESSION KERNEL UNLIMITEDDEFAULT SESSIONS_PER_USER KERNEL UNLIMITEDDEFAULT PASSWORD_GRACE_TIME PASSWORD7参数解释1、对数据库资源做限制{{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}}2、对密码做限制{{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:alter profile[资源文件名]limit[资源名]unlimited;如:alter profile default limit failed_login_attempts100;删除PROFILE:drop profile[资源文件名][CASCADE];若创建的PROFILE已经授权给了某个用户,使用CASCADE级联收回相应的限制,收回限制信息后将以系统默认的PROFILE对该用户进行限制。
Oracle_Profile资源限制
数据库Profile设置一、目的:Oracle系统中的Profile可以用来对用户所能使用的数据库资源进行限制,使用Create profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
二、条件:创建profile必须要有CREATE PROFILE的系统权限。
为数据库用户指定资源限制操作步序如下:--1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。
该改变对密码资源无效,密码资源总是可用。
SQL> show parameter resource_limitNAME TYPE VALUE------------------ ------------ -----------resource_limit boolean FALSESQL> alter system set resource_limit=true;系统已更改。
--2.使用create profile创建一个定义对数据库资源进行限制的profile。
设置密码限制profile:create profile testlimitfailed_login_attempts 5 --帐户被锁定之前可以错误尝试的次数password_life_time60 --密码可以被使用的天数,默认值180天password_reuse_time60 --密码可重用的间隔时间(结合PASSWORD_REUSE_MAX)password_reuse_max 5 --密码的最大改变次数(结合PASSWORD_REUSE_TIME)password_verify_function verify_function --口令复杂度校验password_lock_time1/24--(锁定1小时,可设置为天、分钟)password_grace_time10 --当密码过期之后还有多少天可以使用原密码idle_time30 --允许空闲会话的时间【单位是分钟】connect_time480; --限制会话连接时间【单位是分钟】--3.使用create user或alter user命令把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 }}2、设置用户表空间大小无限制alter user zs quota unlimited on users;3show parameter resource_limit;select * from dba_profiles;4、创建profil ecreate profile pp limitSESSIONS_PER_USER 2LOGICAL_READS_PER_CALL 10;alter user scott profile pp;此时scott会话最多只能登录2个,超过2个不能登录5、限制块5.1create table ss as select * from dba_objects;5.2清除缓存alter system flush buffer_cache;5.3 alter profile pp limitLOGICAL_READS_PER_SESSION 10000LOGICAL_READS_PER_CALL 100;6用户角色6.1预定义角色CONNECT,RESOURCE,DBAcreate user ww identified by abc;6.2查看CONNECT角色select * from role_sys_privs where role='CONNECT';6.3查看RESOURCE角色select * from role_sys_privs where role='RESOURCE';6.4查看DBA角色select * from role_sys_privs where role='DBA';6.5自定义角色create role rr;给角色赋权限grant create any table,create procedure to rr;将rr角色赋给用户wwgrant rr to ww;7、密码文件认证7.1oracle用户以sys登录oracle时默认可以忽略密码,sqlplus / as sysdba7.2切换目录到/oracle/app/oracle/product/10.2.0/db_1/network/admin7.3 vim sqlnet.ora写入SQLNET.AUTHENTICATION_SERVICES=(NONE)保存退出7.4此时不能再忽略密码登录了,必须sqlplus sys/123456 as sysdba;7.5假如密码忘记,则可以切换目录到/oracle/app/oracle/product/10.2.0/db_1/dbs删除orapwTEST rm –rf orapwTEST;建立密码文件orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=123abc force=y; 然后用sqlplus sys/123abc as sysdba;登录。
Oracle数据库口令策略
Oracle数据库口令策略Oracle口令和资源管理1、Profiles: 概要文件,包含一些对口令和资源限制的一个命名的集合。
通过CREA TE USER 或ALTER USER 命令来指定用户。
它可以是enabled 或disabled。
可以参考default profile(默认,资源和口令没有做任何限定)。
sql>create user testidentified by test; //用户和口令都是test2、口令管理:Account locking >Password history >Password expiration and aging 口令生命周期和过期时间>Password verification 设定口令的复杂性(符号等)>用户口令限制是一直保持的。
使用CREATE USER or Lock,unlock ,expire accounts 这些命令sql> alter user test account lock; //帐号锁定sql>alter user test account unlock; //帐号解锁sql>alter user test password expire; //口令到期(1)口令帐号锁定:FAILED_LOGIN_A TTEMPTS 在帐号被锁之前登录尝试的失败次数,PASSWORD_LOCK_TIME 在尝试失败登录达到一定的次数后帐号被锁定的时间(单位:1天),超过这个时间将自动解锁。
sql>create profile profile1 limitpassword_lock_time 1/1440failed_login_attempts 3; //配置文件profile1已创建sql>alter user kong profile profile1; //将用户kong使用配置文件profile1sql>conn kong/kkk //ERRORsql>conn kong/kxf //ERRORsql>conn kong/kkk //ERRORsql>conn kong/111 //the account is locked 帐号已被锁定(登录失败3次后帐号自动锁定)sql>alter profile profile1 limitpassword_lock_time 1/1440; //表示1分钟后锁定的帐号将自动解锁(1/60*1/24)sql>conn kong/kxf;(2)口令生存周期和失效后允许改变的时间:PASSWORD_LIFE_TIME 口令的生存周期(口令经过多少天后会提示到期)/ PASSWORD_GRACE_TIME 失效后锁定,即设定几天后锁定。
通过创建用户profile文件,限制用户对数据库资源使用数据库教程-电脑资料
通过创建用户profile文件,限制用户对数据库资源使用数据库教程-电脑资料创建|数据|数据库可以限制的资源列表在下面的例子中,创建一个供用户TestUser使用的TEST_PROFILE环境文件:create profile TEST_PROFILE limitFAILED_LOGIN_ATTEMPTS 3;create user TESTUSER identified by abcd1234profile TEST_PROFILE;grant CREATE SESSION to TESTUSER;如果连续3次与T estUser账户的连接失败,该账户将自动被Oracle锁定,。
此后当输入T estUser账户的正确口令时,会收到一条错误信息:ERROR:ORA-28000: the account is locked环境文件是通过“create profile”命令创建的,可以用“alter profile”命令修改。
下例所示的“alter profile”命令用于修改现有的环境文件。
在这个例子中,数据库的缺省环境文件被修改成允许最大空闲时间为1小时:alter profile DEFAULT 或 profile文件名 limit idle_time 60;--设定用户的资源配置文件1.设置初始化参数 resource_limit=true2./*建立资源配置文件*/create profile prfile_name limit session_per_user 2 cpu_per_session 10000 idle_time 60 connect_time 480;3.alter user user_name profile profile_name; --将创建的profile文件分配给用户4.用命令修改资源配置文件alter profile DEFAULT 或 profile文件名 limit idle_time 60;5.drop profile profile_name; --删除profile/*建立了profile后,且指定给某个用户,则必须用CASCADE才能删除*/drop profile profile_name CASCADE;alter system set resource_limit=true;---启用自愿限制,缺省是false。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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已经对系统有了一个非常严格的约束。