`

Oracle建立用户 ,限制用户访问资源

 
阅读更多

一、目的:

Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。

 

二、条件:

创建profile必须要有CREATE PROFILE的系统权限。

为用户指定资源限制,必须:

 

1.动态地使用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

 

2.使用create profile创建一个定义对数据库资源进行限制的profile。

3.使用create user 或alter user命令把profile分配给用户。

 

三、语法:

 

     CREATE PROFILE profile

LIMIT { 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:配置文件的名称。Oracle数据库以以下方式强迫资源限制:

       1.如果用户超过了connect_time或idle_time的会话资源限制,数据库就回滚当前事务,并结束会话。用户再次执行命令,数据库则返回一个错误,

       2.如果用户试图执行超过其他的会话资源限制的操作,数据库放弃操作,回滚当前事务并立即返回错误。用户之后可以提交或回滚当前事务,必须结束会话。

       提示:可以将一条分成多个段,如1小时(1/24天)来限制时间,可以为用户指定资源限制,但是数据库只有在参数生效后才会执行限制。

        Unlimited:分配该profile的用户对资源使用无限制,当使用密码参数时,unlimited意味着没有对参数加限制。

        Default:指定为default意味着忽略对profile中的一些资源限制,Default profile初始定义对资源不限制,可以通过alter profile命令来改变。

       Resource_parameter部分

        Session_per_user:指定限制用户的并发会话的数目。

       Cpu_per_session:指定会话的CPU时间限制,单位为百分之一秒。

       Cpu_per_call:指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒。

       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则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。

 

       1.如果为这两个参数指定了整数,则用户不能重用密码直到密码被改变了password_reuse_max指定的次数以后在password_reuse_time指定的时间内。

       如:password_reuse_time=30,password_reuse_max=10,用户可以在30天以后重用该密码,要求密码必须被改变超过10次。

       2.如果指定了其中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。

       3.如果指定了其中的一个为default,Oracle数据库使用定义在profile中的默认值,默认情况下,所有的参数在profile中都被设置为unlimited,如果没有改变profile默认值,数据库对该值总是默认为unlimited。

       4.如果两个参数都设置为unlimited,则数据库忽略他们。

        Password_lock_time:指定登陆尝试失败次数到达后帐户的缩定时间,以天为单位。

       Password_grace_time:指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。

       Password_verify_function:该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create profile语句。Oracle数据库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。 对Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格式,除了数据库标量子查询。

 

五、举例:

       1.创建一个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> alter user dinya profile default;

用户已更改。

            SQL>

 

 10G官方文档地址:http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6010.htm#SQLRF01310

分享到:
评论

相关推荐

    ORACLE创建用户、创建用户

    在Oracle数据库中,创建用户是一项重要的管理任务,它允许系统管理员为不同的应用程序或个人设置独立的数据存储区域,并控制他们对数据库资源的访问权限。在本节中,我们将详细介绍如何在Oracle环境下创建新的数据库...

    oracle用户创建

    - **设置资源限制**:为了防止用户滥用资源,可以通过设置资源限制来控制用户可以使用的表空间大小、会话数量等。 - **监控用户活动**:定期检查用户的活动情况,确保没有异常行为发生。 - **审计跟踪**:启用审计...

    Oracle创建表空间、临时表、用户及用户授权

    在Oracle数据库管理中,表空间...以上就是Oracle数据库中创建表空间、临时表、用户及用户授权的基本步骤。在实际操作中,DBA应根据业务需求和安全性考虑来合理规划和管理这些元素,确保数据库的稳定运行和数据的安全。

    oracle数据库用户管理

    Oracle数据库提供了丰富的用户管理和安全策略,确保只有授权的用户才能访问特定的数据资源。 首先,Oracle数据库的安全性可以分为两个主要类别:系统安全性和数据安全性。系统安全性涉及到对整个数据库系统的访问...

    oracle创建表空间,创建用户,授权给新建的用户实例全解

    创建用户是分配数据库访问权限的第一步。Oracle中的用户包括用户名、口令以及默认表空间等信息。创建用户的SQL命令如下: ```sql CREATE USER 用户名 IDENTIFIED BY 口令 DEFAULT TABLESPACE 表空间名; ``` 例如,...

    详解oracle创建用户.doc

    3. **资源限制**:在创建用户时,可以为其设置资源限制,例如最大会话数、最大可用表空间等,以防止资源滥用。 通过以上步骤,我们可以有效地管理和控制 Oracle 数据库中的用户账户和权限。这对于维护数据库的安全...

    Oracle创建表空间.创建用户.创建表

    在Oracle数据库中创建用户是为了让不同的应用程序和个人能够安全地访问数据库资源。创建用户时,我们需要定义用户的登录密码、默认表空间、临时表空间等信息。 ##### 示例 ```sql CREATE USER sidney IDENTIFIED BY...

    oracle创建huike用户与表空间并授权

    在Oracle数据库管理中,创建用户和表空间是基础操作,对于数据库的管理和资源分配至关重要。在本教程中,我们将详细探讨如何在Oracle中创建名为“huike”的用户,为该用户分配表空间,并进行相应的权限授予。首先,...

    AIX 系统及 Oracle 数据库用户权限管理

    - **表空间管理**:在创建Oracle数据库用户时,通常先建立用户所使用的表空间,避免使用系统USERS表空间。 - **角色分配**:在赋予权限时,通常选择CONNECT、RESOURCE角色,并授予UNLIMITED TABLESPACE权限。 通过...

    oracle修改用户密码

    例如,可以限制用户创建表的空间大小。 #### 四、示例代码 下面提供一个完整的示例,展示如何在SQL*Plus环境中修改用户密码: 1. 首先登录到SQL*Plus: ``` sqlplus sys/your_password as sysdba ``` 2. 修改`...

    oracle一个创建用户,创建表空间、授权、剪标的完整的过程

    在Oracle数据库管理中,创建用户、表空间及进行权限分配是一项基本且重要的任务。下面将详细介绍这一过程,包括创建用户、创建表空间、授予权限以及如何进行剪标(即删除对象)的操作步骤。 ### 一、创建用户 ####...

    Oracle创建删除用户、角色、表空间、导入导出命令总结.txt

    ### Oracle 创建删除用户、角色、表空间、导入导出命令总结 #### 一、表空间管理 表空间是Oracle数据库中的基本存储单元,用于管理数据文件。以下为创建临时表空间与非临时表空间的命令示例: 1. **创建临时表...

    oracle数据库权限管理

    在Oracle环境中,权限控制是通过授权(GRANT)和回收(REVOKE)操作来实现的,以决定用户或角色可以访问哪些资源以及他们可以执行的操作。 首先,让我们详细了解一下Oracle中的权限类型: 1. **系统权限**:这些...

    Oracle用户授权

    在Oracle中,创建用户、表空间以及进行授权是管理数据库的关键步骤。以下是对这些概念的详细解释: 1. **创建用户**: Oracle中的用户是数据库操作的主要实体,通过`CREATE USER`语句来创建。例如: ```sql ...

    oracle-用户管理.pptx

    用户管理涉及到创建、修改和授权用户,以及管理用户的权限和资源限制。在Oracle数据库中,用户是访问数据库的实体,而角色是一组预定义的权限,可以方便地分配给多个用户。 在Oracle数据库项目应用开发中,理解用户...

    oracle精细访问控制(初级)

    Oracle FGAC 是一种高级的安全机制,它允许管理员根据用户当前的操作环境来动态地调整用户的访问权限。与传统的基于角色的访问控制相比,FGAC 提供了更细粒度的控制能力,可以实现更为灵活的安全策略。 #### 二、...

    Oracle10g用户和权限管理ppt

    通过创建和管理概要文件,DBA可以实施标准的口令安全功能,并限制用户对数据库资源的使用。 7. **安全管理**:DBA需要确保操作系统级别的安全性,比如通过口令文件或操作系统验证SYSBA和SYSOPER的连接。对于SYSDBA...

    Oracle安全设置细节

    Oracle的安装目录和数据文件目录应设置严格的访问控制,仅允许特定用户访问。这样可以防止未经授权的用户对数据库或数据造成破坏。建议修改这些目录的权限,以确保只有数据库管理员或其他授权人员能够访问。 接着,...

Global site tag (gtag.js) - Google Analytics