百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Oracle数数据库用户管理之用户与安全性(三)--概要文件

sinye56 2024-09-24 00:01 3 浏览 0 评论

1.1.7 概要文件

1.1.7.1 概要文件管理

1.1.7.1.1 概要文件的作用

概要文件是口令限制和资源限制的命名集合,是 Oracle 安全策略的重要组成部分,利

用概要文件可以对数据库用户进行口令管理和资源限制。例如使用概要文可以指定口令有效

期、口令校验函数、用户连接时间以及最大空闲时间等。概要文件具有以下一些作用:

  • ? 限制用户执行消耗资源过度的 SQL 操作。
  • ? 自动断开空闲会话。
  • ? 在大而复杂的多用户数据库系统中合理分配资源。
  • ? 控制用户口令的使用。

在建立数据库时,Oracle 会自动建立名称为 DEFAULT 的默认概要文件,初始的

DEFAULT 概要文件的所有口令及资源限制选项值均为 UNLIMITED,即未进行任何口令及

资源限制。当建立用户时,如果不指定概要文件,则 Oracle 会将 DEFAULT 概要文件分配给

该用户。根据用户所承担任务的不同,DBA 应该建立不同的概要文件,并将概要文件分配

给相应用户。一个用户只能分配一个概要文件,一个概要文件可以同时包含口令限制和资源

限制。

1.1.7.1.2 概要文件内容

概要文件内容包括口令和资源的限制,下面分别介绍这两部分的有关参数。

1) 口令策略参数

口令策略参数可以实现帐户锁定、口令的过期以及口令的复杂度等策略,在概要文件中

的口令参数可以有以下几个:

  • ? FAILED_LOGIN_ATTEMPTS:该参数指定允许的输入错误口令的次数,超过该次数后用户帐户被自动锁定。
  • ? PASSWORD_LOCK_TIME:用于指定指定账户被锁定的天数(单位:天)。
  • ? PASSWORD_LIFE_TIME:指定口令的有效期(单位:天)。如果在达到有效期前用 户还没有更换口令,它的口令将失效,这时必须由 DBA 为它重新设置新的口令。
  • ? PASSWORD_GRACE_TIME:用于指定口令失效的宽限期(单位:天)
  • ? PASSWORD_REUSE_TIME:指定能够重复使用一个口令前必须经过的时间(单位: 天)。
  • ? PASSWORD_REUSE_MAX:用于指定在重复使用口令之前必须对口令进行修改的次数。PASSWORD_REUSE_TIME 和 PASSWORD_REUSE_MAX 两个参数只能设置一个,另一个必须为 UNLIMITED。
  • ? PASSWORD_VERIFY_FUNCTION:指定验证口令复杂度的函数。Oracle 提供了一 个默认的口令校验函数,这可以通过运行脚本 utlpwdmg.sql 来建立该函数,脚本保 存在 ORACLE_HOME\rdbms\admin 目录中。DBA 也可以通过修改脚本来实现自己 的口令校验函数。

2) 资源限制参数

利用概要文件,可以对以下系统资源进行限制。

  • ? CPU 时间
  • ? 逻辑读
  • ? 用户的并发会话数
  • ? 空闲时间
  • ? 连接时间
  • ? 私有 SGA 区

对这些资源的限制是通过在概要文件中设置参数来实现的,参数的值可以是一个整数,

也可以是 UNLIMITED(即不受限制),还可以是 DEFAULT(使用 DEFAULT 概要文件中的

参数设置)。下面分别介绍有关参数:

  • ? CPU_PER_SESSION:限制每个会话所能使用的 CPU 时间。参数值是一个整数, 单位是百分之一秒。
  • ? SESSIONS_PER_USER:限制每个用户所允许建立的最大并发会话数。
  • ? CONNECT_TIME:限制每个会话能连接到数据库的最长时间,超过这个时间会话 将自动断开。参数值是一个整数,单位是分钟。
  • ? IDLE_TIME:限制每个会话所允许的最长连续空闲时间,超过这个时间会话将自 动断开。参数值是一个整数,单位是分钟。
  • ? LOGICAL_READS_PER _SESSION:限制每个会话所能读取的数据块数目。
  • ? PRIVATE_SGA:每个会话分配的私有 SGA 区大小(以字节为单位)。该参数只对 共享服务器模式有效。? CPU_PER_CALL:用于指定每条 SQL 语句可占用的最大 CPU 时间,单位是百分 之一秒。
  • ? LOGICAL_READS_PER_CALL:用于指定每条 SQL 语句最多所能读取的数据块数 目。

1.1.7.2 使用概要文件管理口令

Oracle 数据库中不同用户账户具有不同的口令,如何防止其他人窃取账户密码是 DBA

要重点关切的问题。为了加强用户账户的安全性,Oracle 提供了概要文件来管理口令,概要

文件管理口令有锁定账户、终止口令、口令历史以及口令校验等四种安全保护方式。大家需

要注意,前面介绍的概要文件中共包含了 7 个口令管理选项,如果仅指定某个或某几个选项, 那么其他选项将自动使用 DEFAULT 概要文件的相应选项值。

使用概要文件管理口令主要步骤是先创建概要文件,然后设置相关口令参数,最后把概

要文件分配给用户。建立概要文件是使用 CREATE PROFILE 命令来完成的,一般情况下建

立概要文件是由 DBA 来完成的,如果要以其他用户身份建立概要文件,则要求该用户必须

具有 CREATE PROFILE 系统权限。

1.1.7.2.1 锁定帐户

如果用户在指定的次数内尝试登录系统失败,系统会在设置的持续时间内锁定帐户。

  • ? FAILED_LOGIN_ATTEMPTS 参数指定在锁定帐户前尝试登录失败的次数。
  • ? PASSWORD_LOCK_TIME 参数指定在经历指定的尝试登录失败次数后锁定帐户的天数。

如果建立 PROFILE 时没有提供 PASSWORD_LOCK_TIME 选项,将自动使用默 认

值(UNLIMITED),在这种情况下,需要 DBA 手工解锁通过使用概要文件,可以限制登录失败

次数,如果连续登录的失败次数超出一定范围,那么 Oracle 会自动锁定账户。

【实例 3-1】为了加强 devp 用户的口令安全,要限制其登录失败次数为 3。

1)以管理员身份登录 
SQL>CONNECT / AS SYSDBA 
已连接。 
2)创建概要文件,设定相关参数 
SQL>CREATE PROFILE devp_lock LIMIT 
FAILED_LOGIN_ATTEMPTS 3; 
配置文件已创建 
3) 分配概要文件给用户 devp,这既可以在建立用户时使用 PROFILE 子句,也可以在 
建立用户之后使用 ALTER USER 语句修改。
SQL>ALTER USER devp PROFILE devp_lock; 
用户已更改。 

当将概要文件分配给 devp 用户之后,如果以 devp 连接到数据库时,连续登录失败次数达到三次,那么系统会自动锁定该用户账户。此时,即使为用户 devp 提供了正确的口 
令,也将无法连接到数据库,并显示错误信息。例如: 
SQL>connect devp 
请输入口令: 
ERROR: 
ORA-28000: the account is locked 

1.1.7.2.2 终止口令

使用户口令具有生存期,口令在此生存期之后会失效,而且可能已更改。

  • ? PASSWORD_LIFE_TIME 参数指定口令的生存期(以天为单位),此时间之后,口令会失效。
  • ? PASSWORD_GRACE_TIME 参数指定口令失效后首次成功登录时用于更改口令的宽限期(以天为单位)。

注:通过使口令失效和锁定 SYS、SYSMAN 和 DBSNMP 帐户,可避免出现 Enterprise

Manager 不正常运行的情况。应用程序必须捕获“口令到期”警告消息并处理口令更

改;否则,宽限期一到期,会在原因不明的情况下锁定用户。

【实例 3-2】强制用户 devp 每隔 10 天修改其自身口令,并设置两天宽限期。

1)以管理员身份登录 
SQL>CONNECT / AS SYSDBA 
已连接。 
2)创建概要文件,设定相关参数 
SQL>CREATE PROFILE devp_life LIMIT 
PASSWORD_LIFE_TIME 10 
PASSWORD_GRACE_TIME 2; 
配置文件已创建 
3) 分配概要文件给用户 devp 
SQL>ALTER USER devp PROFILE devp_life; 
用户已更改。 
当将概要文件分配给用户 devp 之后,第 10 天登录会显示警告信息: 
SQL>connect devp/development 
ERROR: 
ORA_28002:the password will expire within 2 days 
已连接。 

如果第 10 天未改变口令,那么第 11 天登录时仍然会显示类似警告信息。但用户如果第 
11 天仍然未改变口令,那么第 12 天登录时系统会强制你改变口令,并显示如下信息: 
SQL>connect devp/developmentERROR: 
ORA-28001: the password has expired 
更改 devp 的口令 
新口令: 
重新键入新口令: 
口令已更改 
已连接。 

1.1.7.2.3 口令历史

通过核对新口令可确保在指定的时间内或者在指定的口令更改次数内不重复使用口令。

通过使用下列其中一项来进行核对:

  • ? PASSWORD_REUSE_TIME:用于指定口令可重用时间
  • ? PASSWORD_REUSE_MAX:用于指定在重用口令之前口令需要改变的次数

注 意 : 这 两 个 参 数 是 互 相 排 斥 的 , 因 此 , 如 果 其 中 一 个 参 数 的 设 置 值 不 是 UNLIMITED(如果 DEFAULT 概要文件的设置值为 UNLIMITED,则为 DEFAULT), 则另一个参数必须设置为 UNLIMITED。

假定 devp 原有口令为 development,终止口令时新口令仍然可以设置为 development,这种做法显然失去了终止口令的含义。为了强制用户使用不同口令,可以使用口令历史选项。

【实例 3-3】为了防止用户 devp 重用旧口令,强制该用户在口令终止 10 天之内不能重

用以前口令。

1)以管理员身份登录 
SQL>CONNECT / AS SYSDBA 
2)创建概要文件,设定相关参数 
SQL>CREATE PROFILE devp_his LIMIT 
PASSWORD_LIFE_TIME 10 
PASSWORD_GRACE_TIME 2 
PASSWORD_REUSE_TIME 10 
PASSWORD_REUSE_MAX UNLIMITED; 
配置文件已创建 
3) 分配概要文件给用户 devp 
SQL>ALTER USER devp PROFILE devp_his; 
用户已更改。 

注意,前面已经提到过,当使用口令历史选项时, PASSWORD_REUSE_TIME 和 
PASSWORD_REUSE_MAX 两个参数只能设置一个,另一个必须为 UNLIMITED。
 
当将概要文件分配给用户 devp 之后,如果前 11 天没有修改用户口令,那么在第 12 天 
登录时,Oracle 会强制终止口令,并要求用户改变口令。但如果仍然使用过去的口令,则口 令修改不能成功,如下所示:SQL>CONNECT devp/development 
ERROR: 
ORA-28001: the password has expired 
更改 devp 的口令 
新口令: 
重新键入新口令: 
ERROR: 
ORA-28007: the password cannot be reused 
口令未更改 

1.1.7.2.4 口令校验

口令校验是指使用 PL/SQL 函数检查口令的有效性。在设置口令时,多数人都习惯于

按照自己易记的方式(如用户名、生日等)来指定口令。但如果其他人很了解用户的各种习惯,

那么口令将不再安全。通过使用口令校验函数,可以强制用户使用复杂的口令。尽管这种做

法会给用户带来一些小麻烦,但却可以大大加强口令的安全性。大家需要注意,如果要使用

口令校验函数,那么必须要以 SYS 用户建立口令校验函数,并且口令校验函数必须满足如

下规范:

 function_name( 
 userid_parameter IN VARCHAR2(30), 
 password_parameter IN VARCHAR2(30), 
 old_password_parameter IN VARCHAR2(30)) 
 RETURN BOOLEAN 

其中,userid_parameter 对应于用户名,password_parameter 对应于用户的新口令,old_password_parameter 对应于用户的旧口令。如果函数返回值为 TRUE,则表示新口令可 以使用;但如果返回值为 FALSE,则表示新口令不满足函数规则。另外,Oracle 也提供了 默认的口令校验函数 VERIFY_FUNCTION,该口令校验函数具有以下一些功能:

  • ? 口令最少为 4 个字符。
  • ? 口令不能与用户名相同。
  • ? 新口令与旧口令至少有三个字符不同。
  • ? 口令至少包含一个阿拉伯字母、一个数字和一个特殊字符。

可以通过以 SYS 用户身份登录后运行脚本 utlpwdmg.sql 来建立默认的口令校验函数,脚本保存在 ORACLE_HOME\rdbms\admin 目录中。DBA 也可以通过修改脚本来实现自己的 口令校验函数。

【实例 3-4】为用户 devp 指定口令校验函数以强制它使用复杂口令

 1)以管理员身份登录 
 SQL>CONNECT / AS SYSDBA 
 已连接。 
 2)运行脚本 utlpwdmg.sql 建立默认口令校验函数 VERIFY_FUNCTION。(当然也可自 
 己创建口令校验函数) 
 SQL>@%ORACLE_HOME%/rdbms/admin/utlpwdmg.sql 
 函数已创建。 
 3)创建概要文件,设定参数 
 SQL>CREATE PROFILE devp_verify LIMIT 
 PASSWORD_LIFE_TIME 10 
 PASSWORD_GRACE_TIME 2 
 PASSWORD_VERIFY_FUNCTION verify_function; 
 配置文件已创建 
 4) 分配概要文件给用户 devp 
 SQL>ALTER USER devp PROFILE devp_verify; 
 用户已更改。 
 这样,当修改 devp 用户口令时,如果不满足函数规则,会出错。如把 devp 的口令改成 
 与用户名一样,则会显示如下错误信息: 
 SQL>alter user devp identified by devp; 
 alter user devp identified by devp 
 *
 ERROR 位于第 1 行: 
 ORA-28003: 指定口令的口令验证失败 
 ORA-20001: Password same as or similar to user 

另外,如果你不想使用口令校验函数,则可以将 PASSWORD_VERIFY_FUNCTION 选 项设置为 NULL。

1.1.7.3 使用概要文件管理资源

概要文件不仅可用于管理用户口令,也可用于限制用户的资源占用。概要文件既可以限

制整个会话的资源占用,也可以限制调用级(SQL 语句)的资源占用。但大家需要注意,如果

要使用概要文件管理资源,则必须要激活资源限制功能,这可以通过设置初始化参 数

RESOURCE_LIMIT 为 TRUE 做到:

	ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; 

使用概要文件管理资源的步骤同管理口令的步骤一样,也是先创建概要文件,然后设置

相关资源参数,最后把概要文件分配给用户。

 CREATE PROFILE "TEMPPROFILE" 
 /*【一般信息】选项卡对应的配置参数*/ 
 LIMIT CPU_PER_SESSION 1000 //CPU 会话 
 CPU_PER_CALL 1000 //CPU 调用 
 CONNECT_TIME 30 //连接时间 
 IDLE_TIME DEFAULT //空闲时间 
 SESSIONS_PER_USER 10 //并行会话数 
 LOGICAL_READS_PER_SESSION 1000 //读取数/会话 
 LOGICAL_READS_PER_CALL 1000 //读取数/调用 
 PRIVATE_SGA 16K //专用 SGA 
 COMPOSITE_LIMIT 1000000 //组合限制 
 /*【口令】选项卡对应的配置参数*/ 
 FAILED_LOGIN_ATTEMPTS 3 //允许输入的错误口令的次数 
 PASSWord_LOCK_TIME 5 //输入错误口令而被锁定的天数 
 PASSWORD_GRACE_TIME 60 //口令过期时间天数 
 PASSWORD_LIFE_TIME 30 // 
 PASSWORD_REUSE_MAX 
 DEFAULT PASSWORD_REUSE_TIME 30 
 PASSWORD_VERIFY_FUNCTION DEFAULTV //验证用户口令复杂度的函数 

1.1.7.3.1 限制会话资源

当用户连接到数据库时,Oracle 将创建一个会话(session)。每个会话都将消耗 Oracle所在计算机的 CPU 时间及内存。用户可以在会话级(session level)设置多种资源限制(resource limit)。

如果用户超过了某一会话级资源限制,Oracle 将终止(回滚)当前执行的语句,并通知用户此会话超出资源限制。此时,当前会话内已经执行的语句不受资源限制的影响,而用户则只能执行 COMMIT,ROLLBACK,或断开连接(disconnect)(如断开连接,当前事务将被提交)。用户的其他所有操作都将导致报错。在事务被提交或回滚后,用户在当前会话内也不能执行其他任何操作。

【实例 3-5】数据库最多允许两个开发人员以 devp 用户登录进行应用开发,每个会话

连接时间不能超过 30min,会话空闲时间不能超过 10min。

 1)以管理员身份登录 
 SQL>CONNECT / AS SYSDBA 
 已连接。 
 2)创建概要文件,设定参数 
 SQL>CREATE PROFILE devp_session LIMIT 
 CPU_PER_SESSION 5000 
 SESSIONS_PER_USER 2 
 CONNECT_TIME 30 
 IDLE_TIME 10; 
 配置文件已创建 
 3) 分配概要文件给用户 devpSQL>ALTER USER devp PROFILE devp_session; 
 用户已更改。 
 因为在建立概要文件时指定 SESSION_PER_USER 选项为 2,即允许用户最多可以同时 
 建立两个会话,所以如果用户 devp 的并发会话个数达到两个,那么当建立第三个会话时则 
 会显示如下错误信息: 
 SQL>CONNECT devp/development 
 ERROR: 
 ORA-02391:exceeded simultaneous SESSIONS_PER_USER limit 
 因为 IDLE_TIME 选项被设置为 10,所以如果会话空闲时间超过 10min,那么 Oracle 
 会自动断开会话。 

管理员可以限制用户并发会话数(concurrent sessions for each user)。每个用户的并发会话数不能超过预设值。

管理员可以限制一个会话的空闲时间(idle time)。如果会话内两次 Oracle 调用间的间 隔时间达到了限制值,当前事务将被回滚,会话将被终止(aborted),会话所占用的资源将 被系统回收。下次会话将得到报错信息,提示用户已经终止了与实例的连接。此限制的设置单位为分钟。

当会话由于超出空闲时间限制而被终止之后,进程监视器(process monitor,PMON)后台进程将对被终止的会话进行清理。在 PMON 完成此过程前,统计用户及会话资源使用时仍将包含被终止的会话。

管理员可以限制每个会话的连接持续时间。如果会话持续连接时间超出限制值,当前事务将被回滚,会话将被移除(dropped),会话所占用的资源将被系统回收。此限制的设置单位为分钟。

Oracle 不会持续不断地监控会话的空闲时间及连接时间,因为这样做将降低系统性能。

Oracle 的做法是每隔数分钟检查一次。因此,在 Oracle 依据资源限制终止会话前,会话有可能已经略微超出了限制时间(例如,超出 5 分钟)。

1.1.7.3.2 限制调用资源

SQL 语句每次运行时,Oracle 都将执行一系列操作来处理此语句。在处理过程中,不同的执行阶段需要向数据库发起不同的调用。为了防止某个调用过度地使用系统资源,Oracle 允许管理员在调用级(call level)设定多种资源限制(resource limit)。

如果用户超过了调用级资源限制,Oracle 将停止执行语句,并进行回滚,之后向用户报错。此时,当前会话内已经执行的语句不受资源限制的影响,用户会话也将保持连接状态。

当 Oracle 执行 SQL 语句或用户的其他各类调用(call)时,系统需要一定的 CPU 时间来处理此调用。普通的调用所需的 CPU 时间较少。但是需要处理大量数据的语句,或失控的查询(runaway query)可能占用大量的 CPU 时间,这减少了其他处理任务可用的CPU时间。

为了防止 CPU 时间被不受控地占用,管理员可以限制会话内每个调用使用的 CPU 时间,以及会话中所有 Oracle 调用的 CPU 时间之和。设置及衡量调用或会话可使用的 CPU时间的单位为百分之一秒。

【实例 3-6】限制用户 devp 的调用级资源。

 1)以管理员身份登录 
 SQL>CONNECT / AS SYSDBA 
 已连接。 
 2)创建概要文件,设定参数 
 SQL>CREATE PROFILE devp_call LIMIT 
 CPU_PER_CALL 200 
 LOGICAL_READS_PER_CALL 3; 
 配置文件已创建 
 3) 分配概要文件给用户 devp 
 SQL>ALTER USER devp PROFILE devp_call; 
 用户已更改。 
 因为在建立概要文件 devp_call 时指定了 LOGICAL_READS_PER_CALL 选项为 3,所 
 以如果执行单条 SQL 语句访问的数据块总数超过 3,则会显示如下错误信息: 
 SQL> CONNECT devp/development 
 已连接。 
 SQL>select * from scott.emp; 
 select * from scott.emp 
 *
 ERROR 位于第 1 行: 
 ORA-02395: 超出 IO 使用的调用限制 

1.1.7.3.3 其他资源

1) 逻辑读取

输入/输出(Input/output,I/O)是数据库系统中开销最大的操作。I/O 操作密集的 SQL 语 句可能会占用大量内存及硬盘,并与其他需要同样资源的数据库操作产生竞争。

为了防止 I/O 被独占,Oracle 可以限制调用及会话的逻辑数据块读取(logical data block read)。逻辑数据块读取包含从内存及磁盘读取数据。设置及衡量调用或会话可使用的逻辑 读取的单位为数据块数量。

  • LOGICAL_READS_PER_SESSON:用于指定会话的最大逻辑读取次数.
  • LOGICAL_READS_PER_CALL:用于限制每次调用的最大逻辑 I/O 次数.

2) CPU

可以每个会话或每个调用为基础限制 CPU 资源。

“CPU/会话”限制为 1,000 表示:

当使用此概要文件的任一会话占用 10 秒以上的 CPU 时间(CPU 时间限制以百分之一秒为单位)时,该会话就会收到错误并被注销:

ORA-02392: exceeded session limit on CPU usage, you arebeing logged off

每个调用限制的作用是相同的,但是它不是限制用户的整个会话,而是防止任一命令占用过多的 CPU。如果“CPU/调用”受到限制,而且用户超出了限制,命令就会中止,用户还会收到错误消息,例如:

ORA-02393: exceeded call limit on CPU usage

  • CPU_PER_SESSION:用于指定每个会话可以占用的最大 CPU 时间.
  • CPU_PER_CALL:限制每次调用(解析,执行或提取数据)可占用的最大 CPU 时间(单位:百分之一秒)

3) 网络/内存:

每个数据库会话都会占用系统内存资源和网络资源(如会话来自服务

器的非本地用户)。可以指定以下参数:

  • - 连接时间:指示用户在自动注销前可以保持连接的分钟数
  • - 闲置时间:指示用户会话在自动注销前可以保持闲置的分钟数。只会计算服务器进程的闲置时间。闲置时间中不考虑应用程序活动。IDLE_TIME 限制不受长时间运行查询和其它操作的影响。
  • - 并行会话:指示使用数据库用户帐户可以创建多少并行会话
  • - 专用 SGA:限制系统全局区域(SGA) 中执行排序、合并位图等操作占用的空间。此限制仅在会话使用共享服务器时才有效。
  • PRIVATE_SGA:用于指定会话在共享池中可以分配的最大总计私有空间.需要注意,该选
  • 项只使用与共享服务器模式.
  • COMPOSITE_LIMIT:用于指定会话的总计资源消耗(单位:服务单元).oracle 会根据
  • CPU_PER_SESSION,CONNECT_TIME,LOGICAL_READS_PER_SESSION 以及
  • PRIVATE_SGA 的求权结果取得总计服务单元.
  • SESSIONS_PER_USER:用于指定每个用户的最大并发会话个数.
  • CONNECT_TIME:用于指定会话的最大连接时间.
  • IDLE_TIME:用于指定会话的最大空闲时间.

通过概要文件还可提供组合限制。组合限制以“CPU/会话”、“读取/会话”、“连接时 间”和“专用 SGA”的加权组合为基础。

下面以限制帐户 DEVEP 会话占用 CPU 时间不超过 50 秒,逻辑读取次数不超过 100 次为例,说明使用 PROFILE 限制会话资源的方法.为了控制会话资源,首先应执行 CREATE

PROFILE 命令建立 PROFILE,然后使用 ALTER USER 命令将 PROFILE 分配给用户 DEVEP.

CREATE PROFILE session_limit LIMIT 
CPU_PER_SESSION 5000 LOGICAL_READS_PER_SESSION 100;ALTER USER devep PROFILE session_limit; 

1.1.7.4 其它操作

1.1.7.4.1 修改概要文件

当口令和资源限制无法满足用户的实际需求时,你就需要修改概要文件中的口令及资源限制参数。修改概要文件是使用 ALTER PROFILE 命令由 DBA 来完成的;如果要以其它用户身份修改概要文件,则要求该用户必须具有 ALTER PROFILE 系统权限。需要注意,修改概要文件对已存在会话没有影响,而只对新会话起作用。

【实例 3-7】修改用户 devp 的口令和资源限制。

1)以管理员身份登录 
SQL>CONNECT / AS SYSDBA 
已连接。 
2)修改概要文件 
SQL>ALTER PROFILE devp_call LIMIT 
SESSIONS_PER_USER 2 
FAILED_LOGIN_ATTEMPTS 2 
CPU_PER_CALL 200; 
配置文件已更改 

修改用户 devp 当前的概要文件后,当 devp 重新登录后,其口令和资源限制就发生变化了,如该用户的口令失败次数只能两次。

1.1.7.4.2 删除概要文件

当某个概要文件不需要时,可以删除它。删除概要文件是使用 DROP PROFILE 命令由DBA来完成的,如果要以其他用户身份删除概要文件,则要求该用户必须具有DROP PROFILE 系统权限。

【实例 3-8】删除概要文件 devp_call

1)以管理员身份登录 
SQL>CONNECT / AS SYSDBA 
已连接。 
2)删除概要文件 
SQL>DROP PROFILE devp_call CASCADE; 
配置文件已丢弃 

需要注意,如果概要文件已经被分配给某个用户,那么当删除概要文件时必须带 有其中:

  • ? PROFILE:概要文件名称。
  • ? RESOURCE_NAME:口令或资源选项名。
  • ? RESOURCE_TYPE:PASSWORD 表示口令管理选项,而 KERNAL 则表示资源限制选项。
  • ? LIMIT:概要文件选项值。

1.1.7.5 用控制台管理概要文件

用控制台管理概要文件过程如下:

Profile 概要文件是口令限制,资源限制的命名集合。建立 oracle 数据库时,oracle 会自动 建立名为 DEFAULT 的 PROFILE,初始化的 DEFAULT 没有进行任何口令和资源限制。

通过概要文件还可管理帐户状态并设置对用户口令的限制(长度、失效时间等)。每个 用户都分配一个概要文件,而且该用户在指定时间只属于一个概要文件。如果用户在您更改 用户概要文件时已经登录,那么所做更改只在用户下一次登录后才生效。

默认概要文件用作其它所有概要文件的基础。概要文件的限制可隐式指定(如“CPU/会 话”)、可取消限制(如“CPU/调用”),或引用默认概要文件中的任何设置(如“连接时间”)。

除非 RESOURCE_LIMIT 初始化参数设置为 TRUE,否则不能通过概要文件强行设置用户的资源限制。如果 RESOURCE_LIMIT 使用默认值 FALSE,则忽略概要文件的限制。

1.1.8 表空间配额

对于没有 UNLIMITED TABLESPACE 系统权限的用户,必须先给他们指定限额,之后

他们才可在表空间中创建对象。

限额可以是:

  • ● 以兆字节或千字节为单位的特定值
  • ● 无限制

将限额分配给用户:

限额代表指定表空间中允许的空间容量。默认情况下,用户在任何表空间中都没有限额。 使用以下三个选项可提供用户的表空间限额。

  • ● 无限制:允许用户最大限度地使用表空间中的可用空间。
  • ● 值:用户可以使用的空间,以千字节或兆字节为单位。这并不保证为用户保留该空间。因为,此值可能大于或小于表空间中的当前可用空间。
  • ● UNLIMITED TABLESPACE 系统权限:此系统权限会覆盖各个表空间限额,并向用户提供所有表空间(包括 SYSTEM 和 SYSAUX)的无限制限额。授予此权限时必须谨慎

注:请注意,授予 RESOURCE 角色时包括授予此权限。

一定不能向用户提供关于 SYSTEM 或 SYSAUX 表空间的限额。通常,只有 SYS 和 SYSTEM 用户才能在 SYSTEM 或 SYSAUX 表空间中创建对象。

不需要关于分配的临时表空间或任何还原表空间的限额。



写在最后的话

感谢各位的支持与阅读,后续会继续推送相关知识和交流,欢迎交流、转发和关注,感谢!

相关推荐

RHEL8和CentOS8怎么重启网络

本文主要讲解如何重启RHEL8或者CentOS8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错,当我们安装好RHEL8或者CentOS8,重启启动网络时,会出现以下报错:...

Linux 内、外网双网卡路由配置

1.路由信息的影响Linux系统中如果有多张网卡的情况下,如果路由信息配置不正确,...

Linux——centos7修改网卡名

修改网卡名这个操作可能平时用不太上,可作为了解。修改网卡默认名从ens33改成eth01.首先修改网卡配置文件名(建议将原配置文件进行备份)...

CentOS7下修改网卡名称为ethX的操作方法

?Linux操作系统的网卡设备的传统命名方式是eth0、eth1、eth2等,而CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的...

Linux 网卡名称enss33修改为eth0

一、CentOS修改/etc/sysconfig/grub文件(修改前先备份)为GRUB_CMDLINE_LINUX变量增加2个参数(net.ifnames=0biosdevname=0),修改完成...

CentOS下双网卡绑定,实现带宽飞速

方式一1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0IPADDR=191.3.60.1NETMASK=255.255.2...

linux 双网卡双网段设置路由转发

背景网络情况linux双网卡:网卡A(ens3)和网卡B(...

Linux-VMware设置网卡保持激活

Linux系统只有在激活网卡的状态下才能去连接网络,进行网络通讯。修改配置文件(永久激活网卡)...

VMware虚拟机三种网络模式

01.VMware虚拟机三种网络模式由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有v...

Rocky Linux 9/CentOS Stream 9修改网卡配置/自动修改主机名(实操)

推荐...

2023年最新版 linux克隆虚拟机 解决网卡uuid重复问题

问题描述1、克隆了虚拟机,两台虚拟机里面的ip以及网卡的uuid都是一样的2、ip好改,但是uuid如何改呢?解决问题1、每台主机应该保证网卡的UUID是唯一的,避免后面网络通信有问题...

Linux网卡的Vlan配置,你可能不了解的玩法

如果服务器上连的交换机端口已经预先设置了TRUNK,并允许特定的VLAN可以通过,那么服务器的网卡在配置时就必须指定所属的VLAN,否则就不通了,这种情形在虚拟化部署时较常见。例如在一个办公环境中,办...

Centos7 网卡绑定

1、切换到指定目录#备份网卡数据cd/etc/sysconfig/network-scriptscpifcfg-enp5s0f0ifcfg-enp5s0f0.bak...

Linux搭建nginx+keepalived 高可用(主备+双主模式)

一:keepalived简介反向代理及负载均衡参考:...

Linux下Route 路由指令使用详解

linuxroute命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该...

取消回复欢迎 发表评论: