第10周 Oralce用户管理_第1页
第10周 Oralce用户管理_第2页
第10周 Oralce用户管理_第3页
第10周 Oralce用户管理_第4页
第10周 Oralce用户管理_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10周 用户管理杨进学习目标 Oracle 数据库用户是数据库安全机制的一种,通过它可管理数据库对象的所有权和访问权限。本章主要内容是介绍Oracle 数据库用户、模式(Schema)的概念,数据库用户的身份验证机制,以及如何创建和管理数据库用户。【本章要点】 了解了解ORACLE 验证方式验证方式 使用概要文件使用概要文件 创建、修改和删除数据库用户创建、修改和删除数据库用户 获取数据库用户信息获取数据库用户信息1.1 用户与安全用户与安全1.1.1 数据的安全访问数据的安全访问Oracle 数据库的安全包括在对象级控制数据库访问和使用的机制,这是通过数据库用户来实现的,数据库用户是定义在

2、数据库中的一个名称,它是存取数据库中信息的通道,是Oracle 数据库的基本访问控制机制。要访问数据库,用户必须指定有效的数据库用户帐户,而且而且还要根据该用户帐户的要求成功通过验证。每一个数据库用户都有自己的数据库帐户。这是Oracle 的最佳实践建议,这样可避免存在潜在的安全漏洞,为特定的审计活动提供有意义的数据。 但是,在极少数情况下,若干用户会共享一个公用数据库帐户。此时,操作系统和应用程序必须为数据库提供足够的安全性。数据安全策略决定哪个用户访问特定模式对象,在对象数据安全策略决定哪个用户访问特定模式对象,在对象上允许每个用户的特定类型操作上允许每个用户的特定类型操作。用户在访问Or

3、acle 数据库时必须提供一个数据库帐户,只有合法身份的用户才能够访问数据库。在Oracle 数据库中,每个数据库用户有一系列安全属性,见图各个属性的含义如下: 唯一的用户名:唯一的用户名:用户名不能超过30个字节,不能包含特殊字符,而且必须以字母开头。 验证方法:验证方法:最常见的验证方法是口令,但是Oracle Database 10g 支持其它多种验证方法,包括生物统计学验证、证书验证和标记验证。 默认表空间:默认表空间:如果用户未指定其它表空间,则可在这个表空间中创建对象。请注意,具有默认表空间并不意具有默认表空间并不意味着用户具有在该表空间创建对象的权限,也不意味着味着用户具有在该表

4、空间创建对象的权限,也不意味着用户具有该表空间(用于创建对象)中的空间限额。用户具有该表空间(用于创建对象)中的空间限额。这两项需要另外单独授权。 临时表空间:临时表空间:用户可在其中创建临时对象(如排序和临时表)的表空间。 用户概要文件:用户概要文件:分配给用户的一组资源与口令的限制 使用者组:使用者组:由资源管理器使用。 锁定状态:锁定状态:用户只可访问“未锁定”帐户。 表空间配额:表空间配额:指明用户在某个表空间中所能使用的存储空间大小。1.1.2 预定义账户预定义账户SYS和和SYSTEM SYS 帐户:帐户: 授予了DBA 角色 具有ADMIN OPTION 的所有权限 执行启动、关

5、闭和某些维护命令时需要使用的帐户 拥有数据字典 拥有自动工作量资料档案库(AWR) 使用AS SYSDBA子句连接(任何授予了SYSDBA 权限的用户均可通过使用AS SYSDBA 子句连接到SYS 帐户) SYSTEM 帐户授予了帐户授予了DBA 角色(非角色(非SYSDBA)。)。 这两个帐户不在例行程序操作中使用。 只有授予了SYSDBA 或SYSOPER权限的“授权”用户才可以启动或关闭数据库实例。 SYS和 SYSTEM 帐户是数据库中必需存在的帐户,不能将其删除。最佳实践提示:最佳实践提示:如果应用最少权限原则,则不在例行程序操作中使用这些帐户。 需要DBA 权限的用户另外拥有授予

6、了所需权限的独立帐户。例如,Jim 有一个名为jim 的低权限帐户及一个名为jim_dba 的授权帐户。使用此方法可应用最少权限原则,不需要共享帐户,而且可审计各项操作。1.1.3 验证用户验证用户 验证指的是对要使用数据、资源或应用程序的用户、验证指的是对要使用数据、资源或应用程序的用户、设备或其它实体的身份进行验证。设备或其它实体的身份进行验证。 通过对该身份进行验证可建立一种信任关系,从而可进一步执行交互。通过验证可将访问和操作与特定的身份联系起来,从而实现可靠性。完成验证后,验证流程可允许或限制该实体许可的访问和操作的级别。创建用户时,必须确定要使用的验证方法,以后可修改此方法。1.1

7、.3.1外部验证外部验证又称操作系统验证。用户可以在不指定用户名或口令的情况下连接到Oracle 数据库。使用外部验证时,数据库依赖于基础操作系统或网络验证服务来限制对数据库帐户的访问。数据库口令不会用于此类登录。数据库口令不会用于此类登录。如果操作系统或网络服务允许的话,可以使用外部验证来验证用户。如果要执行此操作,请设置 OS_AUTHENT_PREFIX 初始化参数,并在 Oracle 用户名中使用此前缀。OS_AUTHENT_PREFIX 参数定义了一个前缀,Oracle 数据库会在每个用户的操作系统帐户名之前添加此前缀。为了实现与Oracle 软件早期版本的向后兼容,此参数的默认值为

8、 OPS$。用户用户尝试建立连接时,尝试建立连接时,Oracle 数据库会将带前缀的用户名与数据库会将带前缀的用户名与数据库中的数据库中的Oracle 用户名进行比较。用户名进行比较。例如,假定OS_AUTHENT_PREFIX 设置如下:OS_AUTHENT_PREFIX=OPS$如果某个用户的操作系统帐户名为tsmith,它需要连接到Oracle 数据库而且已由操作系统验证,那么Oracle 数据库会检查是否存在一个对应的数据库用户数据库用户OPS$tsmith,如果存在这样的用户,则允许该用户建立连接。在用户(已由操作系统验证)的所有引用中必须包含OPS$tsmith 中显示的前缀。注:

9、在某些操作系统中,OS_AUTHENT_PREFIX 初始化参数的文本是区分大小写的。 创建外部操作系统身份验证的用户很简单,假如有一个操作系统用户名为dragon,则:对于LINUX 系统:create user ops$dragon identified externally;对于WINDOWS 系统,假如登陆ID 是Dragon,域名是MIS:create user OPS$MISDRAGON identified externally;创建好用户后,以dragon 身份登录到操作系统,然后在直接输入:sqlplus / 进行登录并连接到数据库。外部验证的优点: 经过操作系统的身份验证后

10、,用户可以更便捷地连接到Oracle,而无需提供用户名及密码。例如,经过操作系统验证的用户,按以下方式调用SQL*Plus,即可跳过输入用户名及密码的步骤:SQLPLUS / 在操作系统中集中地进行用户身份验证, Oracle 不必再存储及管理用户密码,但Oracle 仍旧需要在数据库中维护用户名。 在数据库及操作系统中记录审计跟踪数据(audit trail)时可以使用相同的用户名。1.1.3.2口令验证口令验证又称为Oracle 数据库验证。 创建的每一个用户都有一个关联口令,用户尝试建立连接时,必须提供这个口令。设置口令时,可以使该口令立即失效,这会强制用户在首次登录后更改口令。如果决定

11、要使用户口令失效,请确保用户能够更改口令。有些应用程序不具备此功能。在(客户机/服务器之间和服务器/服务器之间)建立网络连接期间,系统总是先通过使用修改过的数据加密标准(DES) 算法,以自动透明方式对口令加密,然后通过网络发送口令。在使用SQL*Plus 时,通过口令身份验证进行连接的语法如下:CONNECT username / password db_alias SQL connect scott/tiger; SQL conn scott/tiger; oracleoracle $ sqlplus scott/tiger; 这是Oracle 一般用户使用得最多的一种身份验证方式。在使用

12、口令身份验证进行连接时,实例将针对在数据字典中的用户账户存储的口令,验证给定的口令。为此,数据库必须处于打开状态;从逻辑上讲,在使用口令身份验证连接时,不可能发出STARTUP 命令或者SHUTDOWN 命令。 不允许不允许SYS 用户以口令身份验证的方式进行连接,用户以口令身份验证的方式进行连接,SYS 只能使用口令文件、操作系统或只能使用口令文件、操作系统或LDAP 身份验证。身份验证。数据库验证表示用户名和口令的验证由Oracle 完成,用户在连接数据库时必须同时提供用户名和口令。采用数据库验证具有以下一些优点: 用户帐户及其身份验证信息全部存储在数据库中,验证由Oracle Serve

13、r 完成,而不需要借助数据库外的任何控制。 当使用数据库验证时,Oracle 提供了严格的口令管理特征以加强口令的安全性,例如帐户锁定、口令有效期以及口令长度、复杂度等。 易于管理。1.1.3.3全局验证全局验证使用Oracle Advanced Security 选项时,可通过全局验证(一种严格的验证方法)并使用生物统计学、x509 证书、标记设备和Oracle Internet Directory 来识别用户。1.1.3.4网络验证网络验证 基于第三方的身份验证技术基于第三方的身份验证技术如果系统中存在(DCE,Kerberos,或SESAME 等)的网络身份验证服务(network au

14、thentication service),Oracle 可以使用这些网络服务进行身份验证。在使用网络身份验证服务时,应注意其对网络角色(network role)及数据库链接(database link)的影响。 基于基于PKI 的身份验证的身份验证基于公共密钥加密(public key cryptography)的身份验证系统能够为用户客户端生成数字证书(digital certificate),客户端使用此证书在业务服务器上进行身份验证,而不是直接和身份验证服务器交互(authentication server)。Oracle 提供了支持公共密钥(public key)及数字证书的公共密

15、钥基础结构(public key infrastructure,PKI),其中包含以下组件: 基于基于SSL(Secure Sockets Layer(安全套接字层)的身份验证及安全会话密钥(secure session key)管理。 Oracle Call Interface 函数及PL/SQL 函数,用于使用私有密钥(private key)及证书来保护用户指定的数据,或用可信证书(trusted certificate)验证数据上的签名(signature)。 可信证书,可信证书,用于验证第三方实体的身份,确认其是否为可信的用户证书签署者。 Oracle wallet,用于储存用户私有

16、密钥,用户证书,及用户信任点(trust point)(即可信的认证机构)集的数据结构。 Oracle Wallet Manager,用于管理及编辑Oracle wallet 安全身份证明(security credentials)的单机Java 应用程序。 由由Oracle 之外的认证机构签署并发布的之外的认证机构签署并发布的X.509v3 证书证书。 Oracle Internet Directory,用于管理用户的权限及安全属性,包括通过X.509 证书进行用户身份验证。OID 能够确保属性级(attribute-level)的访问控制,并使读,写,及更新等权限可以控制到具体的用户,例如

17、管理员。 Oracle Enterprise Security Manager,实现集中化的权限管理,从而简化管理员的工作,并提升系统的安全级别。用户可以通过此组件在Oracle Internet Directory 中存储或提取角色信息。 Oracle Enterprise Login Assistant 是一个基于Java 的工具,用于打开或关闭用户的wallet,从而控制应用程序是否采用基于SSL 的安全通讯。 远程身份验证远程身份验证Oracle 能够利用远程拨号用户服务(Remote Dial-In User Service,RADIUS)支持远程用户身份验证。RADIUS 是一个标

18、准的轻量级协议,主要用于用户身份验证,授权,及审计(accounting)。1.1.4 管理员验证管理员验证数据库管理员能够执行普通数据库用户不该执行的特殊操作(例如启动或关闭数据库)。Oracle 为数据库管理员用户提供更为安全的身份验证方式。1.1.4.1操作系统安全性操作系统安全性在UNIX 和Linux 中,默认情况下,DBA 属于install 操作系统组。该组具有创建和删除数据库文件所需的权限。 DBA 必须具有创建或删除文件的操作系统权限。必须具有创建或删除文件的操作系统权限。 普通数据库用户不应具有创建或删除数据库文件的操普通数据库用户不应具有创建或删除数据库文件的操作系统权限

19、。作系统权限。1.1.4.2管理员安全性管理员安全性只在使用口令文件或操作系统特权与权限完成验证后,才只在使用口令文件或操作系统特权与权限完成验证后,才授权建立授权建立SYSDBA 和和SYSOPER 连接。连接。如果使用操作系统验证,那么数据库就不使用提供的用户名和口令。当口令文件不存在,或者该文件中不存在提供的用户名和口令,或者未提供用户名和口令时,就使用操作系统验证操作系统验证。 但是,如果使用口令文件成功完成了验证,则使用用户名记录连接。如果使用操作系统成功完成了验证,则表示这是一个CONNECT/连接,这种连接不记录具体用户。 注:操作系统验证优先于口令文件验证。注:操作系统验证优先

20、于口令文件验证。特别是,如果您是操作系统中OSDBA 或OSOPER 组的成员,而且以SYSDBA 或SYSOPER 身份进行连接,则会使用关联的管理权限为您建立连接,不管您指定的用户名和口令是什么。 通过口令文件或操作系统验证通过口令文件或操作系统验证SYSDBA 和和SYSOPER 连接连接 口令文件验证会按名称记录DBA 用户。 操作系统验证并不记录具体用户。 对于SYSDBA 和SYSOPER,操作系统验证优先于口令文件验证。要为账户启用操作系统和口令身份验证(二者是相配的),必须为用户授予SYSDBA 或者SYSOPER 权限:GRANT sysdba | sysoper TO us

21、ername ; 如果向用户授予这些权限之一或者所有权限,则会将用户口令从数据字典复制到外部口令文件中,此时,即使数据库未处于打开状态,实例也可以读取口令。 要使用口令文件身份验证,用户可以在使用SQL*Plus 时通过以下语法连接:CONNECT username / password db_alias AS SYSOPER | SYSDBA ;注意,可使用口令文件身份验证,通过Oracle Net 连接到远程数据库。 要使用操作系统身份验证,用户必须被确认为有权限访问Oracle 二进制文件的操作系统用户之后,且在使用SQL*Plus 时通过以下语法连接之前首先登陆到数据库服务器:CONN

22、ECT / AS SYSOPER | SYSDBA ;与SYSDBA 和SYSOPER 以同一种方式运行的第三种权限是SYSASM,此权限仅适用于ASM 实例。Oracle 数据库在密码文件(password file)中记录被授予了SYSDBA 及SYSOPER 权限的数据库用户,这些权限能够执行以下操作: 具备SYSOPER 权限的数据库管理员能够执行STARTUP,SHUTDOWN,ALTER DATABASE OPEN/MOUNT,ALTER DATABASE BACKUP,ARCHIVE LOG,及,及RECOVER 命令,并具备命令,并具备RESTRICTED SESSION 权限

23、。权限。具备SYSDBA 权限的数据库管理员拥有所有系统权限(system privilege)及权限的ADMIN OPTION 选项,还拥有SYSOPER 所拥有的全部系统权限。 此外,能够执行 CREATE DATABASE 命令,并能够执行基于时间的恢复操作(time-based recovery)1.1.5 身份验证的几个相关参数和配置身份验证的几个相关参数和配置 remote_login_passwordfile查看是否允许远程登录使用口令文件进行身份验证 -SHARED 一个或多个数据库可以使用口令文件。可以包含SYS 或者非SYS 的口令文件。 -EXCLUSIVE 新版本和新版

24、本和SHARED 功能一致。功能一致。 -NONE 不允许远程使用口令文件验证,如远程用SYS 账号连接Oracle 将会报错。SQL alter system set remote_login_passwordfile=NONE scope=spfileSQL startup force进行远程连接,报错,实际是参数值被更改:SQL conn sys / oracleorcl as sysdbaERROR:ORA-01017: invalid username/password; logon denied 查看使用口令文件进行身份验证的用户列表: SQLNET.AUTHENTICATION_

25、SERVICES$ORACLE_HOME/network/admin/sqlnet.ora 配置文件中SQLNET.AUTHENTICATION_SERVICES 参数,有三个取值: -NONE:作用是不允许通过OS 系统用户登录数据库,需要提供用户名及密码; -ALL:作用是允许所有的登录方式; -NTS:作用是允许本地操作系统用户认证1.1.6 数据库模式对象数据库模式对象Schema 模式是一系列对象的集合。一个模式只能够被一个数据库用户所拥有,并且模式的名称与这个用户的名称相同。ORACLE 数据库中的每个用户都拥有一个唯一的模式,他所创建的所有模式对象都保存在自己的模式中。模式对象的

26、类型有表、索引、簇、触发器、PL/SQL、序列、同义词、视图、存储过程和存储函数等,当然,Oracle 中并不是所有的对象都是模式对象,非模式对象有: 表空间表空间 用户用户 角色角色 回滚段回滚段 概要文件概要文件当用户在数据库中创建一个模式对象后,这个模式对象默认地属于这个用户的模式。一个用户可以访问其模式的所有对象,但其它用户要访问另一个模式的对象时,必须在对象名前加上它所属的模式名。例如用户SCOTT 检索其模式的表EMP 时,可以直接执行语句:SELECT * FROM EMP;但是,如果要访问SMITH 模式的CLASS 表时,则必须执行语句:SELECT * FROM SMITH

27、.CLASS。初学者在刚刚接触模式概念时,常常不清楚数据库用户与模式之间的区别。造成这种情况的原因是因为在Oracle 数据库中,模式与数据库用户是一一对应,每个数据库用户都拥有一个与他的用户名相同的模式。因此,在Oracle 数据库中,模式与用户两个概念的差别很小,经常可以替换。例如“用户A 拥有TEMP 表”和“模式A 拥有TEMP 表”两句话的意义是相同的。因此不必在语言上完全区分模式与用户,但是,一定要清楚模式与用户是两个完全不同的概念。1.1.7 概要文件概要文件1.1.7.1概要文件管理概要文件管理1.1.7.1.1 概要文件的作用概要文件的作用概要文件是口令限制和资源限制的命名集

28、合概要文件是口令限制和资源限制的命名集合,是Oracle 安全策略的重要组成部分,利用概要文件可以对数据库用户进行口令管理和资源限制。例如使用概要文可以指定口令有效期、口令校验函数、用户连接时间以及最大空闲时间等。概要文件具有以下一些作用: 限制用户执行消耗资源过度的限制用户执行消耗资源过度的SQL 操作。操作。 自动断开空闲会话。自动断开空闲会话。 在大而复杂的多用户数据库系统中合理分配资源。在大而复杂的多用户数据库系统中合理分配资源。 控制用户口令的使用。控制用户口令的使用。在建立数据库时,Oracle 会自动建立名称为DEFAULT 的默认概要文件,初始的DEFAULT 概要文件的所有口

29、令及资源限制选项值均为UNLIMITED,即未进行任何口令及资源限制。当建立用户时,如果不指定概要文件,则Oracle 会将DEFAULT 概要文件分配给该用户。根据用户所承担任务的不同,DBA 应该建立不同的概要文件,并将概要文件分配给相应用户。一个用户只能分配一个概要文件,一个概要文件可以同时包含口令限制和资源限制。1.1.7.1.2 概要文件内容概要文件内容概要文件内容包括口令和资源的限制口令和资源的限制,下面分别介绍这两部分的有关参数。1) 口令策略参数口令策略参数口令策略参数可以实现帐户锁定、口令的过期以及口令的复杂度等策略,在概要文件中的口令参数可以有以下几个: FAILED_LO

30、GIN_ATTEMPTS:该参数指定允许的输入错误口令的次数,超过该次数后用户帐户被自动锁定。 PASSWORD_LOCK_TIME:用于指定指定账户被锁定的天数(单位:天)。 PASSWORD_LIFE_TIME:指定口令的有效期(单位:天)。如果在达到有效期前用户还没有更换口令,它的口令将失效,这时必须由DBA 为它重新设置新的口令。 PASSWORD_GRACE_TIME:用于指定口令失效的宽限期(单位:天)。 PASSWORD_REUSE_TIME:指定能够重复使用一个口令前必须经过的时间(单位:天)。 PASSWORD_REUSE_MAX:用于指定在重复使用口令之前必须对口令进行修改

31、的次数。PASSWORD_REUSE_TIME 和PASSWORD_REUSE_MAX 两个参数只能设置一个,另一个必须为UNLIMITED。 PASSWORD_VERIFY_FUNCTION:指定验证口令复杂度的函数。Oracle 提供了一个默认的口令校验函数,这可以通过运行脚本utlpwdmg.sql 来建立该函数,脚本保存在ORACLE_HOMErdbmsadmin 目录中。DBA 也可以通过修改脚本来实现自己的口令校验函数。2) 资源限制参数利用概要文件,可以对以下系统资源进行限制。 CPU 时间时间 逻辑读逻辑读 用户的并发会话数用户的并发会话数 空闲时间空闲时间 连接时间连接时间

32、私有私有SGA 区区对这些资源的限制是通过在概要文件中设置参数来实现的,参数的值可以是一个整数整数,也可以是UNLIMITED(即不受限制),还可以是DEFAULT(使用DEFAULT 概要文件中的参数设置)。下面分别介绍有关参数: CPU_PER_SESSION:限制每个会话所能使用的CPU 时间。参数值是一个整数,单位是百分之一秒。下面分别介绍有关参数: SESSIONS_PER_USER:限制每个用户所允许建立的最大并发会话数。 CONNECT_TIME:限制每个会话能连接到数据库的最长时间,超过这个时间会话将自动断开。参数值是一个整数,单位是分钟。 IDLE_TIME:限制每个会话所允

33、许的最长连续空闲时间,超过这个时间会话将自动断开。参数值是一个整数,单位是分钟。 LOGICAL_READS_PER _SESSION:限制每个会话所能读取的数据块数目。 PRIVATE_SGA:每个会话分配的私有SGA 区大小(以字节为单位)。该参数只对共享服务器模式有效。 CPU_PER_CALL:用于指定每条SQL 语句可占用的最大CPU 时间,单位是百分之一秒。 LOGICAL_READS_PER_CALL:用于指定每条SQL 语句最多所能读取的数据块数目。1.1.7.2使用概要文件管理口令使用概要文件管理口令Oracle 数据库中不同用户账户具有不同的口令,如何防止其他人窃取账户密码

34、是DBA要重点关切的问题。为了加强用户账户的安全性,Oracle 提供了概要文件来管理口令,概要文件管理口令有锁定账户、终止口令、口令历史以及口令校验锁定账户、终止口令、口令历史以及口令校验等四种安全保护方式。大家需要注意,前面介绍的概要文件中共包含了7 个口令管理选项,如果仅指定某个或某几个选项,那么其他选项将自动使用DEFAULT 概要文件的相应选项值。 使用概要文件管理口令主要步骤是先创建概要文件,然后设先创建概要文件,然后设置相关口令参数,最后把概要文件分配给用户。置相关口令参数,最后把概要文件分配给用户。建立概要文件是使用CREATE PROFILE 命令来完成的,一般情况下建立概要

35、文件是由DBA 来完成的,如果要以其他用户身份建立概要文件,则要求该用户必须具有CREATE PROFILE 系统权限。1.1.7.2.1 锁定帐户锁定帐户如果用户在指定的次数内尝试登录系统失败,系统会在设置的 持续时间内锁定帐户。 FAILED_LOGIN_ATTEMPTS 参数指定在锁定帐户前尝试登录失败的次数。 PASSWORD_LOCK_TIME 参数指定在经历指定的尝试登录失败次数后锁定帐户的天数。 如果建立PROFILE 时没有提供PASSWORD_LOCK_TIME 选项,将自动使用默认值(UNLIMITED),在这种情况下,需要DBA 手工解锁通过使用概要文件,可以限制登录失败

36、次数,如果连续登录的失败次数超出一定范围,那么Oracle 会自动锁定账户。【实例实例10-1】为了加强为了加强devp 用户的口令安全,要限制其登用户的口令安全,要限制其登录失败次数为录失败次数为3。1)以管理员身份登录SQLCONNECT / AS SYSDBA已连接。2)创建概要文件,设定相关参数SQLCREATE PROFILE devp_lock LIMITFAILED_LOGIN_ATTEMPTS 3;配置文件已创建3) 分配概要文件给用户devp,这既可以在建立用户时使用PROFILE 子句,也可以在建立用户之后使用ALTER USER 语句修改。SQLALTER USER de

37、vp PROFILE devp_lock;用户已更改。当将概要文件分配给devp 用户之后,如果以devp 连接到数据库时,连续登录失败次数达到三次,那么系统会自动锁定该用户账户。此时,即使为用户devp 提供了正确的口令,也将无法连接到数据库,并显示错误信息。例如:SQLconnect devp请输入口令:ERROR:ORA-28000: the account is locked1.1.7.2.2 终止口令终止口令使用户口令具有生存期,口令在此生存期之后会失效,而且可能已更改。 PASSWORD_LIFE_TIME 参数指定口令的生存期(以天为单位),此时间之后,口令会失效。 PASSWO

38、RD_GRACE_TIME 参数指定口令失效后首次成功登录时用于更改口令的宽限期(以天为单位)。注:通过使口令失效和锁定SYS、SYSMAN 和DBSNMP 帐户,可避免出现Enterprise Manager 不正常运行的情况。应用程序必须捕获“口令到期”警告消息并处理口令更改;否则,宽限期一到期,会在原因不明的情况下锁定用户。【实例实例16-2】强制用户强制用户devp 每隔每隔10 天修改其自身口令,并设天修改其自身口令,并设置两天宽限期。置两天宽限期。1)以管理员身份登录SQLCONNECT / AS SYSDBA已连接。2)创建概要文件,设定相关参数SQLCREATE PROFILE

39、 devp_life LIMITPASSWORD_LIFE_TIME 10PASSWORD_GRACE_TIME 2;配置文件已创建3) 分配概要文件给用户devpSQLALTER USER devp PROFILE devp_life;用户已更改。当将概要文件分配给用户devp 之后,第10 天登录会显示警告信息:SQLconnect devp/developmentERROR:ORA_28002:the password will expire within 2 days已连接。如果第10 天未改变口令,那么第11 天登录时仍然会显示类似警告信息。但用户如果第11 天仍然未改变口令,那么第

40、12 天登录时系统会强制你改变口令,并显示如下信息:SQLconnect devp/developmentERROR:ORA-28001: the password has expired更改devp 的口令新口令:重新键入新口令:口令已更改已连接。1.1.7.2.3 口令历史口令历史通过核对新口令可确保在指定的时间内或者在指定的口令更改次数内不重复使用口令。通过使用下列其中一项来进行核对: PASSWORD_REUSE_TIME:用于指定口令可重用时间 PASSWORD_REUSE_MAX:用于指定在重用口令之前口令需要改变的次数注意: 这两个参数是互相排斥的, 因此, 如果其中一个参数的设

41、置值不是UNLIMITED(如果DEFAULT 概要文件的设置值为UNLIMITED,则为DEFAULT),则另一个参数必须设置为UNLIMITED。假定devp 原有口令为development,终止口令时新口令仍然可以设置为development,这种做法显然失去了终止口令的含义。为了强制用户使用不同口令,可以使用口令历史选项。【实例实例10-3】为了防止用户为了防止用户devp 重用旧口令,强制该用户在重用旧口令,强制该用户在口令终止口令终止10 天之内不能重用以前口令天之内不能重用以前口令。1)以管理员身份登录SQLCONNECT / AS SYSDBA2)创建概要文件,设定相关参数S

42、QLCREATE PROFILE devp_his LIMITPASSWORD_LIFE_TIME 10PASSWORD_GRACE_TIME 2PASSWORD_REUSE_TIME 10PASSWORD_REUSE_MAX UNLIMITED;配置文件已创建3) 分配概要文件给用户devpSQLALTER USER devp PROFILE devp_his;用户已更改。注意,前面已经提到过,当使用口令历史选项时, PASSWORD_REUSE_TIME 和PASSWORD_REUSE_MAX 两个参数只能设置一个,另一个必须为UNLIMITED。当将概要文件分配给用户devp 之后,如果

43、前11 天没有修改用户口令,那么在第12 天登录时,Oracle 会强制终止口令,并要求用户改变口令。但如果仍然使用过去的口令,则口令修改不能成功,如下所示:SQLCONNECT devp/developmentERROR:ORA-28001: the password has expired更改devp 的口令新口令:重新键入新口令:ERROR:ORA-28007: the password cannot be reused口令未更改1.1.7.2.4 口令校验口令校验口令校验是指使用PLSQL 函数检查口令的有效性。在设置口令时,多数人都习惯于按照自己易记的方式(如用户名、生日等)来指定口

44、令。但如果其他人很了解用户的各种习惯,那么口令将不再安全。通过使用口令校验函数,可以强制用户使用复杂的口令。尽管这种做法会给用户带来一些小麻烦,但却可以大大加强口令的安全性。大家需要注意,如果要使用口令校验函数,那么必须要以SYS 用户建立口令校验函数,并且口令校验函数必须满足如下规范:function_name(userid_parameter IN VARCHAR2(30),password_parameter IN VARCHAR2(30),old_password_parameter IN VARCHAR2(30)RETURN BOOLEAN其中,userid_parameter 对应

45、于用户名, password_parameter 对应于用户的新口令,old_password_parameter 对应于用户的旧口令。如果函数返回值为TRUE,则表示新口令可以使用;但如果返回值为FALSE,则表示新口令不满足函数规则。另外, Oracle 也提供了默认的口令校验函数VERIFY_FUNCTION,该口令校验函数具有以下一些功能: 口令最少为口令最少为4 个字符。个字符。 口令不能与用户名相同。口令不能与用户名相同。 新口令与旧口令至少有三个字符不同。新口令与旧口令至少有三个字符不同。 口令至少包含一个阿拉伯字母、一个数字和一个特殊字符口令至少包含一个阿拉伯字母、一个数字和一

46、个特殊字符。可以通过以SYS 用户身份登录后运行脚本utlpwdmg.sql 来建立默认的口令校验函数,脚本保存在RACLE_HOMErdbmsadmin 目录中。DBA 也可以通过修改脚本来实现自己的口令校验函数。D:appAdministratorproduct11.2.0dbhome_1RDBMSADMIN【实例实例16-4】为用户为用户devp 指定口令校验函数以强制它使用复指定口令校验函数以强制它使用复杂口令杂口令1)以管理员身份登录SQLCONNECT / AS SYSDBA已连接。2)运行脚本utlpwdmg.sql 建立默认口令校验函数VERIFY_FUNCTION。(当然也可

47、自己创建口令校验函数)SQL%ORACLE_HOME%/rdbms/admin/utlpwdmg.sql函数已创建。3)创建概要文件,设定参数SQLCREATE PROFILE devp_verify LIMITPASSWORD_LIFE_TIME 10PASSWORD_GRACE_TIME 2PASSWORD_VERIFY_FUNCTION verify_function;配置文件已创建4) 分配概要文件给用户devpSQLALTER USER devp PROFILE devp_verify;用户已更改。这样,当修改devp 用户口令时,如果不满足函数规则,会出错。如把devp 的口令改成

48、与用户名一样,则会显示如下错误信息:SQLalter 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使用概要文件管理资源使用概要文件管理资源概要文件不仅可用于管理用户口令,也可用于限制用户的资源占用。概要文件既可以限制整个会话的

49、资源占用,也可以限制调用级(SQL 语句)的资源占用。但大家需要注意,如果要使用概要文件管理资源,则必须要激活资源限制功能,这可以通过设置初始化参数RESOURCE_LIMIT 为为TRUE 做到:做到:ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;使用概要文件管理资源的步骤同管理口令的步骤一样,也是先创建概要文件,然后设置相关资源参数,最后把概要先创建概要文件,然后设置相关资源参数,最后把概要文件分配给用户。文件分配给用户。1.1.7.3.1 限制会话资源限制会话资源当用户连接到数据库时,Oracle 将创建一个会话(session)。每个会话都将消耗Oracle

50、所在计算机的CPU 时间及内存。用户可以在会话级( session level)设置多种资源限制(resource limit)。 如果用户超过了某一会话级资源限制,Oracle 将终止(回滚)当前执行的语句,并通知用户此会话超出资源限制。此时,当前会话内已经执行的语句不受资源限制的影响当前会话内已经执行的语句不受资源限制的影响,而用户则只能执行只能执行COMMIT,ROLLBACK,或断开连接(,或断开连接(disconnect)(如断开连接,当前事务将被提交)。用户的其他所有操作都将导致报错。在事务被提交或回滚后,用户在当前会话内也不能执行其他任何操作。【实例实例10-5】数据库最多允许两

51、个开发人员以数据库最多允许两个开发人员以devp 用户登录进行用户登录进行应用开发,每个会话应用开发,每个会话连接时间不能超过30min,会话空闲时间不能超过10min。1)以管理员身份登录SQLCONNECT / AS SYSDBA已连接。2)创建概要文件,设定参数SQLCREATE PROFILE devp_session LIMITCPU_PER_SESSION 5000SESSIONS_PER_USER 2CONNECT_TIME 30IDLE_TIME 10;配置文件已创建3) 分配概要文件给用户devpSQLALTER USER devp PROFILE devp_session;

52、用户已更改。 因为在建立概要文件时指定SESSION_PER_USER 选项为2,即允许用户最多可以同时建立两个会话,所以如果用户devp 的并发会话个数达到两个,那么当建立第三个会话时则会显示如下错误信息:SQLCONNECT devp/developmentERROR:ORA-02391:exceeded simultaneous SESSIONS_PER_USER limit 因为IDLE_TIME 选项被设置为10,所以如果会话空闲时间超过10min,那么Oracle会自动断开会话。管理员可以限制用户并发会话数(concurrent sessions for each user)。每个

53、用户的并发会话数不能超过预设值。管理员可以限制一个会话的空闲时间(idle time)。如果会话内两次Oracle 调用间的间隔时间达到了限制值,当前事务将被回滚,会话将被终止(aborted),会话所占用的资源将被系统回收。下次会话将得到报错信息,提示用户已经终止了与实例的连接。此限制的设置单位为分钟。当会话由于超出空闲时间限制而被终止之后,进程监视器(process monitor,PMON)后台进程将对被终止的会话进行清理。在PMON 完成此过程前,统计用户及会话资源使用时仍将包含被终止的会话。 管理员可以限制每个会话的连接持续时间。如果会话持续连接时间超出限制值,当前事务将被回滚,会话

54、将被移除(dropped),会话所占用的资源将被系统回收。此限制的设置单位为分钟。Oracle 不会持续不断地监控会话的空闲时间及连接时间,因为这样做将降低系统性能。Oracle 的做法是每隔数分钟检查一次。因此,在Oracle 依据资源限制终止会话前,会话有可能已经略微超出了限制时间(例如,超出5 分钟)。1.1.7.3.2 限制调用资源限制调用资源SQL 语句每次运行时,Oracle 都将执行一系列操作来处理此语句。在处理过程中,不同的执行阶段需要向数据库发起不同的调用。为了防止某个调用过度地使用系统资源,Oracle 允许管理员在调用级(call level)设定多种资源限制(resou

55、rce limit)。 如果用户超过了调用级资源限制,Oracle 将停止执行语句,并进行回滚,之后向用户报错。此时,当前会话内已经执行的语句不受资源限制的影响,用户会话也将保持连接状态。当Oracle 执行SQL 语句或用户的其他各类调用(call)时,系统需要一定的CPU 时间来处理此调用。普通的调用所需的CPU 时间较少。但是需要处理大量数据的语句,或失控的查询(runaway query)可能占用大量的CPU 时间,这减少了其他处理任务可用的CPU时间。 为了防止CPU 时间被不受控地占用,管理员可以限制会话内每个调用使用的CPU 时间,以及会话中所有Oracle 调用的CPU 时间之

56、和。设置及衡量调用或会话可使用的CPU时间的单位为百分之一秒。【实例实例10-6】限制用户限制用户devp 的调用级资源。的调用级资源。1)以管理员身份登录SQLCONNECT / AS SYSDBA已连接。2)创建概要文件,设定参数SQLCREATE PROFILE devp_call LIMITCPU_PER_CALL 200LOGICAL_READS_PER_CALL 3;配置文件已创建3) 分配概要文件给用户devpSQLALTER USER devp PROFILE devp_call;用户已更改。因为在建立概要文件devp_call 时指定了LOGICAL_READS_PER_CA

57、LL 选项为3,所以如果执行单条SQL 语句访问的数据块总数超过3,则会显示如下错误信息:SQL CONNECT devp/development已连接。SQLselect * 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

58、可以限制调用及会话的逻辑数据块读取(logical data block read)。逻辑数据块读取包含从内存及磁盘读取数据。设置及衡量调用或会话可使用的逻辑读取的单位为数据块数量。LOGICAL_READS_PER_SESSON:用于指定会话的最大逻辑读用于指定会话的最大逻辑读取次数取次数.LOGICAL_READS_PER_CALL:用于限制每次调用的最大逻辑用于限制每次调用的最大逻辑I/O 次数次数.2) CPU可以每个会话或每个调用为基础限制CPU 资源。“CPU/会话”限制为1,000 表示:当使用此概要文件的任一会话占用10 秒以上的CPU 时间(CPU 时间限制以百分之一秒为单位

59、)时,该会话就会收到错误并被注销:ORA-02392: exceeded session limit on CPU usage, you arebeing logged off每个调用限制的作用是相同的,但是它不是限制用户的整个会话,而是防止任一命令占用过多的CPU。如果“CPU/调用”受到限制,而且用户超出了限制,命令就会中止,用户还会收到错误消息,例如:ORA-02393: exceeded call limit on CPU usageCPU_PER_SESSION:用于指定每个会话可以占用的最大CPU 时间.CPU_PER_CALL:限制每次调用(解析,执行或提取数据)可占用的最大CP

60、U 时间(单位:百分之一秒)3) 网络网络/内存:内存:每个数据库会话都会占用系统内存资源和网络资源(如会话来自服务器的非本地用户)。可以指定以下参数:- 连接时间:连接时间:指示用户在自动注销前可以保持连接的分钟数- 闲置时间:闲置时间:指示用户会话在自动注销前可以保持闲置的分钟数。只会计算服务器进程的闲置时间。闲置时间中不考虑应用程序活动。IDLE_TIME 限制不受长时间运行查询和其它操作的影响。- 并行会话:并行会话:指示使用数据库用户帐户可以创建多少并行会话- 专用专用SGA:限制系统全局区域(SGA) 中执行排序、合并位图等操作占用的空间。此限制仅在会话使用共享服务器时才有效。PR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论