版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章管理用户和安全性9.1用户管理
9.2权限管理
9.3角色管理
9.4概要文件
9.5小结
习题九
上机实验九
9.1用
户
管
理
9.1.1用户类别
在数据库系统中,根据工作性质和特点,用户可分成三类:数据库管理员(DBA)、数据库开发人员和普通用户。不同类型的用户分别赋予不同的权限,从而保证数据库系统的
安全。
1.数据库管理员(DBA)
数据库管理员负责管理和维护数据库系统的正常运行,其主要职责包括:
(1)安装并升级Oracle服务器和应用工具。
(2)配置和管理数据库。
(3)设置权限和安全管理。
(4)监控并优化数据库性能。
(5)备份和恢复数据库。
2.数据库开发人员
数据库开发人员负责设计和开发数据库应用程序,其主要职责包括:
(1)设计应用的数据结构。
(2)估算应用的存储需求。
(3)给出应用数据库结构修改的说明。
(4)开发过程中优化应用。
(5)开发过程中构建应用的安全策略。
以上工作需要和DBA协作。
3.普通用户
普通用户指的是执行与数据库相关的日常操作的工作人员。
9.1.2创建用户
在建立一个数据库的新用户时,数据库管理员对用户有下列决策:
(1)设置用户的默认表空间和临时表空间,在表空间中可以使用空间份额。
(2)设置用户资源限制的环境文件,该限制规定了用户可用的系统资源的总量。
(3)规定用户具有的权限和角色,可以存取相应的对象。
创建用户的步骤如下:
(1)确定该用户的表空间和表空间的大小。
(2)分配默认表空间和临时表空间。
(3)创建用户。
(4)授予权限或角色。
1.利用OEM创建用户
下面讲述在“企业管理器”中如何创建新用户。
(1)启动“企业管理器”,在安全性管理中选择“用户”选项,如图
9-1所示,点击右键,选择“创建”,出现如图
9-2所示的“创建用户”的“一般信息”选项卡。在“一般信息”中填写用户的口令,指定用户的默认表空间和临时表空间,还可以指定用户所对应的概要文件。概要文件将在9.4节中介绍。
(2)选择“角色”选项卡,如图
9-3所示。“角色”选项卡用于为用户授予角色,同时使用户具有角色权限。依次选择“系统权限”、“对象权限”选项卡,出现如图9-4所示的“创建用户”的“系统权限”选项卡和如图
9-5所示的“创建用户”的“对象权限”选项卡。“系统权限”选项卡用于为用户授予系统级权限。“对象权限”选项卡用于为用户授予对象级权限,当一个用户是某数据库对象的属主时,它就具有操纵该数据库对象的所有权限,但其他用户必须经过授权才能操纵该数据库对象。
图
9-1选择创建用户
图
9-2“创建用户”的“一般信息”选项卡
图9-3“创建用户”的“角色”选项卡
图
9-4“创建用户”的“系统权限”选项卡
图
9-5“创建用户”的“对象权限”选项卡
(3)分别选择“使用者组”和“限额”选项卡,依次出现如图
9-6所示的“创建用户”的“使用者组”选项卡和如图9-7所示的“创建用户”的“限额”选项卡。“使用者组”选项卡用于为用户定义资源使用者组。“限额”选项卡用于指定用户在对应的表空间中是否分配空间,以及用户在其中可分配的最大空间数量。图9-8所示为“创建用户”的“代理用户”选项卡。“代理用户”选项卡用于指定可以代理此用户行使权利的用户和用户可以代理的其他用户。成功创建用户后将出现如图
9-9所示的界面。
图
9-6“创建用户”的“使用者组”选项卡
图
9-7“创建用户”的“限额”选项卡
图9-8“创建用户”的“代理用户”选项卡
图9-9成功创建用户的界面
2.使用SQL语句创建用户
使用CREATEUSER语句可以创建一个新的数据库用户,执行该语句的用户必须具有CREATEUSER系统权限。在创建用户时,必须指定用户的认证方式。通常Oracle采用两种认证方式:数据库认证方式和操作系统身份认证。在一般的应用中,通常采用数据库认证方式,即通过Oracle数据库对用户身份进行验证。在这种情况下创建用户时必须为新用户指定一个口令,口令以加密方式保存在数据库中。当用户连接数据库时,Oracle从数据库中提取口令来对用户的身份进行验证。创建用户时还应为用户分配默认表空间和临时表空间以及用户可使用表空间的限额。
语法格式:
CREATEUSER用户名
INDENTIFIEDBY口令
[DEFAULTTABLESPACE表空间名]
[TEMPORARYTABLESPACE表空间名]
[QUOTA{正整数[K|M]|UNLIMITED}ON表空间名…]
[PASSWORDEXPIRE]
[ACCOUNT{LOCK|UNLOCK}]
[PROFILE环境文件名|DEFAULT];说明:使用INDENTIFIEDBY子句为用户设置口令,这时用户将通过数据库来进行身份认证。使用DEFAULTTABLESPACE子句为用户指定默认表空间。如果没有指定默认表空间,则Oracle会把SYSTEM表空间作为用户的默认表空间。为用户指定了默认表空间之后,还必须使用QUOTA子句为用户在默认表空间中分配空间配额。
此外,常用的一些子句如下:
(1)TEMPORARYTABLESPACE子句:为用户指定临时表空间。一般地,SQL语句在完成如连接和排序等大量数据的查询时需要临时工作空间来存放结果。
(2)PROFILE子句:为用户指定一个概要文件。如果没有为用户显式地指定概要文件,则Oracle将自动为用户指定DEFAULT概要文件。
(3)DEFAULTROLE子句:为用户指定默认的角色。
(4)PASSWORDEXPIRE子句:设置用户口令的初始状态为过期。
(5)ACCOUNTLOCK子句:设置用户帐户的初始状态为锁定,缺省为ACCOUNTUNLOCK。
【例9.1】
创建用户teacher,口令为teacher123,默认表空间是user,大小是20MB,临时表空间是temp。
SQL>connectsystem/manager;
已连接。
SQL>CREATEUSERteacher
2IDENTIFIEDBYteacher123
3DEFAULTTABLESPACEusers
4TEMPORARYTABLESPACEtemp
5QUOTA20MBONusers;用户已创建。
新用户在建立之后还不能使用,通常会需要使用GRANT语句为他授予CREATESESSION系统权限。CREATESESSION系统权限允许用户在数据库上建立会话过程,这是用户帐号必须具有的最低权限。
【例9.2】
授予权限CREATESESSION给用户teacher。
SQL>GRANTCREATESESSIONTOteacher;
授权成功。
SQL>CONNECTteacher/teacher123;
已连接。
9.1.3修改用户
在创建用户之后,会因为各种需要改变用户的帐户、表空间和权限等。
1.利用OEM修改用户
如图9-10所示,可以利用OEM管理工具在相应的用户上点击右键,出现“查看/编辑详细资料”,对其不同内容选择不同的选项,更改后确认便可。
图
9-10选择修改用户
2.利用SQL命令修改用户
可以使用ALTERUSER语句对用户进行修改,执行该语句的用户必须具有ALTERUSER系统权限。
【例9.3】
修改用户teacher的认证方式、默认表空间和空间配额。
SQL>ALTERUSERteacherIDENTIFIEDBYteacher123QUOTA10MONusers;
用户已更改。
【例9.4】
更改用户teacher的默认表空间。
SQL>ALTERUSERteacher
2DEFAULTTABLESPACEusers
3TemporaryTABLESPACEtemp;
用户已更改。
【例9.5】
修改用户teacher的口令。
SQL>ALTERUSERteacher
2Identifiedbyteacher;
用户已更改。
【例9.6】
修改用户的状态,锁定teacher帐户并解除锁定。
SQL>ALTERUSERteacherACCOUNTLOCK;
用户已更改。
SQL>connectteacher/teacher
ERROR:
ORA-28000:theaccountislocked
警告:您不再连接到
Oracle。
SQL>ALTERUSERTeacherACCOUNTUNLOCK;
用户已更改。
SQL>connectteacher/teacher
已连接。
9.1.4删除用户
【例9.7】
删除用户teacher,并且同时删除他所拥有的所有表、索引等模式对象。
SQL>DROPUSERteacherCASCADE;
用户已丢弃。
同样地,可以利用OEM管理工具选择相应的用户,点击右键进行删除。
9.1.5查看用户信息
为了方便查询用户的有关信息,Oracle提供了以下数据字典视图:
●DBA_USERS:描述数据库中所有用户信息。
●ALL_USRES:描述可以被当前用户看见的用户信息。
●USER_USERS:描述当前用户信息。
●DBA_TS_QUOTAS:描述用户的表空间信息。
●DBA_TS_QUOTAS,USER_PASSWORD_LIMITS:描述分配给该用户的口令、配置文件和参数信息。
● USER_RESOURCE_LIMITS:描述当前用户的资源信息。
【例9.8】
查看用户teacher的用户名、用户标识、锁定日期、帐号状态和默认表空间信息。
注意:查询数据字典的内容时要注意大写匹配。如Whereusername='TEACHER'。如果写为Whereusername='teacher',则系统显示无匹配数据。
9.2权限管理
9.2.1系统权限
Oracle9i有100多种不同的系统权限,每一种系统权限允许用户执行一种特殊的数据库操作或一类数据库操作。Oracle有两大类主要的系统级权限:名字中带有ANY关键字的权限和不带ANY的权限。带有ANY的权限可以使Oracle用户在任何Oracle帐号中执行指定的命令。不带ANY的权限则只能够在自己的Oracle帐号中执行指定的命令。常见的系统权限如表9-1所示。表9-1
常见的系统权限
1.授予系统权限
在OEM管理工具中授予系统权限参见图9-4,这里重点讲述利用SQL命令授予系统权限。在GRANT关键字之后指定系统权限的名称,然后在TO关键字之后指定接受权限的用户。
【例9.9】
利用下面的语句可以将创建表和创建存储过程的权限授予用户TEACHER。
SQL>GRANTCREATETABLE,CREATEPROCEDURETOTEACHER;
授权成功。
上面的代码运行后,Oracle用户TEACHER就可以使用CREATETABLE、CREATEPROCEDURE命令创建表或存储过程。
如果在GRANT语句最后加上WITHADMINOPTION子句,那么不仅可将某种系统权限授予某个Oracle用户,而且这个用户还可以再将这种系统权限授予其他用户,如下面的语句:
SQL>GRANTCREATETABLE,CREATEPROCEDURETOteacherWITHADMIN
OPTION;
授权成功。
上述代码表示TEACHER不仅具有CREATETABLE、CREATEPROCEDURE权限,还可将这些权限授予其他用户。
如果要为数据库中每个用户授予系统权限或对象权限,则可以使用关键字PUBLIC。PUBLIC是Oracle数据库中的一个特殊组,可以使用它为系统中的每个用户快速设定权限。
【例9.10】
授予数据库每个用户创建过程的权限。
SQL>GRANTCREATEPROCEDURETOPUBLIC;
授权成功。
2.回收权限或角色
使用REVOKE语句可以收回已经授予用户(或角色)的系统权限,执行收回系统权限操作的用户同时必须具有授予相同系统权限的能力。
【例9.11】
收回已经授予用户TEACHER的CREATEANYTABLE系统权限。
SQL>REVOKECREATEANYTABLEFROMTEACHER;
撤消成功。
【例9.12】
从PUBLIC用户收回已授予的系统权限。
SQL>REVOKECREATEPROCEDUREFROMPUBLIC;
撤消成功。
9.2.2对象权限
Oracle数据库的对象主要是指表、索引、视图、序列、同义词、过程、函数、包和触发器。创建对象的用户拥有该对象的所有对象权限,不需要授予,所以,对象权限的设置实际上是对象的所有者给其他用户提供操作该对象的某种权力的一种方法。将其中的对象权限授予其他用户,就可以允许他们使用该对象。对象权限规定用户对某个数据库对象中数据的操作权限。Oracle数据库中总共有9种不同的对象权限。不同类型的对象有不同的对象权限。常用的对象权限包括对某个数据库对象中数据的查询、插入、修改、删除等,例如SELECT、INSERT、UPDATE、DELETE等。各种对象权限及说明如表9-2所示。
表9-2
各种对象权限及说明
1.授予对象权限
在OEM管理工具中授予对象权限参见图9-5,这里重点讲述利用SQL命令授权。在GRANT关键字之后指定权限的名称,然后在ON关键字后指定对象名称,最后在TO关键字之后指定接受权限的用户名,即可将指定对象的对象权限授予指定的用户。
使用一条GRANT语句可以同时授予用户多个对象权限,各个权限名称之间用逗号分隔。
【例9.13】
将CUSTOMER表的SELECT、INSERT和UPDATE对象权限授予用户teacher。
SQL>GRANTSELECT,INSERT(CUSTOMER_ID,CUSTOMER_name),
2UPDATE(desc)ONCUSTOMERTOteacherWITHGRANTOPTION;
授权成功。在授予对象权限时,可以使用一次关键字ALL或ALLPRIVILEGES将某个对象的所有对象权限全部授予指定的用户。例如:
SQL>GRANTALLONCUSTOMERTOteacher;
授权成功。
对象权限也可以使用前面所讲的PUBLIC授予数据库的所有用户。例如:
SQL>GRANTALLONCUSTOMERTOPUBLIC;
授权成功。
2.回收对象权限
使用REVOKE语句可以收回已经授予用户(或角色)的对象权限,执行收回对象权限操作的用户必须同时具有授予相同对象权限的能力。
【例9.14】
收回已经授予用户teacher的SELECT和UPDATE对象权限。
SQL>REVOKESELECT,UPDATEONCUSTOMERFROMteacher;
撤消成功。
在收回对象权限时,可以使用关键字ALL或ALLPRIVILEGES将某个对象的所有对象权限全部收回。
【例9.15】
收回已经授予用户teacher的CUSTOMER表的所有对象权限。
SQL>REVOKEALLONCUSTOMERFROMteacher;
撤消成功。
9.2.3查询系统权限与对象权限
1.查询系统权限
用户在登录数据库后,若要查看有关系统权限的信息,则可以查询表9-3所示的表与视图。
表9-3
与系统权限有关的表与视图
2.查询对象权限
用户若要查看有关对象权限的信息,则可以查询表9-4所示的表与视图。
表9-4
与对象权限有关的表与视图其中,OWNER列表示对象的拥有者;TABLE_NAME列表示对象;GRANTOR列表示授权用户(授予者);PRIVILEGE列表示对象权限;GRANTABLE表示在授权时是否带了WITHGRANTOPTION选项;HIERARCHY表示在授权时是否带了WITHHIERARCHYOPTION选项;grantee表示获得对象权限的用户(被授予者)。
由输出结果可知,SYS用户将DBMS_TRANSACTION对象上的EXECUTE对象权限授予了TEACHER用户,并且在授权时带了WITHGRANTOPTION选项。
9.3角
色
管
理
9.3.1系统预定义角色
Oracle系统在安装完成后就已经内置了用于管理的角色,这些角色称为预定义角色。系统预定义角色已经由系统授予了相应的系统权限,可以由数据库管理员直接使用,一旦将这些角色授予用户,用户便具有角色中所包含的系统权限。Oracle9i数据库系统预先定义了25种角色,可以在dba_roles数据字典中查询。以下列举了一些预定义角色。
CONNECT:连接到数据库,最终用户角色。
RESOURCE:申请资源创建对象,开发人员角色。
DBA:具有全部系统权限,可以创建用户。
IMP_FULL_DATABASE:装入全部数据库内容。
EXP_FULL_DATABASE:卸出全部数据库内容。
DELE_CATALOG_ROLE:能删除审计表中的记录。
SELECT_CATALOG_ROLE:查询数据字典。
EXECUTE_CATALOG_ROLE:执行过程和函数。
通过查询SYS.DBA_SYS_PRIVS可以了解每种角色拥有的权利。例如,利用下面的语句可以将DBA角色授予用户Mary:
SQL>GRANTDBATOMaryWITHGRANTOPTION;
在同一条GRANT语句中,可以同时为用户授予系统权限和角色。
如果在为某个用户授予角色时使用了WITHADMINOPTION选项,则该用户将具有如下权利:
(1)将这个角色授予其他用户,使用或不使用WITHADMINOPTION选项。
(2)从任何具有这个角色的用户那里收回该角色。
(3)删除或修改这个角色。
注意:不能使用一条GRANT语句同时为用户授予对象权限和角色。
9.3.2自定义角色
用户根据需求进行分类可以创建各种角色。
1.利用OEM创建角色
(1)如图
9-11所示,选择“创建”角色。
图
9-11选择“创建”角色
(2)出现如图
9-12所示的“创建角色”的“一般信息”选项卡。
(3)图
9-13所示为“创建角色”的“角色”选项卡,用于为多个角色分配子角色。
(4)图
9-14所示为“创建角色”的“系统权限”选项卡。
(5)图
9-15所示为“创建角色”的“对象权限”选项卡。
(6)图9-16所示为“创建角色”的“使用者组”选项卡。
(7)成功创建角色后将出现如图9-17所示的界面。
图
9-12“创建角色”的“一般信息”选项卡
图
9-13“创建角色”的“角色”选项卡
图9-14“创建角色”的“系统权限”选项卡
图9-15“创建角色”的“对象权限”选项卡
图
9-16“创建角色”的“使用者组”选项卡
图
9-17“角色创建成功”界面
2.利用SQL命令创建角色
使用CREATEROLE语句可以创建一个新的角色,执行该语句的用户必须具有CREATEROLE系统权限。在创建角色之后,必须立即为它授予权限,然后就可以将角色授予用户,此时用户得到的权限与角色的权限相同。
【例9.21】
创建一个名为OPT_ROLE的角色,并且为它授予一些对象权限和系统权限,将角色授予teacher用户。
(1)创建角色。
SQL>CREATEROLEOPT_ROLE;
角色已创建。
(2)为角色授权。
SQL>GRANTCREATESESSION,CREATETABLE,CREATEVIEWTOOPT_ROLE;
授权成功。
(3)为用户授予角色。
SQL>GRANTOPT_ROLETOteacher;
授权成功。
(4)以授权用户连接数据库。
SQL>CONNECTteacher/teacher123
已连接。
(5)查询数据字典role_sys_privs,了解用户所具有的角色及该角色所包含的系统权限。
SQL>select*fromrole_sys_privs;
【例9.22】
创建一个带有口令的角色PW_ROLE。
SQL>CREATEROLEPW_ROLEidentifiedbymanager123;
角色已创建。
SQL>GRANTCREATESESSION,CREATETABLETOPW_ROLE;
授权成功。
9.3.3管理角色
1.利用OEM管理角色
如图
9-18所示,选中相应的角色,点击右键,在出现的各选项卡中可以修改角色的各种配置参数,对应修改角色的SQL语句为“ALTERROLE”或者“REVOKE”。如果要删除角色,则选择移去角色,出现如图
9-19所示的角色删除确认界面,选择【是】按钮进行删除。此过程对应的
SQL代码如下所述。
SQL>DROPROLETEMPROLE;
图
9-18选择修改角色
图
9-19角色删除确认界面
2.利用SQL命令管理角色
利用SQL语句的ALTERROLE、GRANTROLE和REVOKE命令也可以管理角色,操作者必须被授予具有ADMINOPTION角色或ALTERANYROLE系统权限。
ALTERROLErole_name[NOTIDENTIFIED][IDENTIFIEDBYpassword]其关键字参数的意义与CREATEROLE语句相同。
使用REVOKE语句可以收回已经授予用户(或角色)的角色,执行收回角色操作,同时用户必须具有授予相同角色的能力。
【例9.23】
取消角色manager的口令。
SQL>ALTERROLEmanagernotidentified;
类型已丢弃。
【例9.24】
删除角色manager。
SQL>DROPROLEmanager;
角色已丢弃
【例9.25】
收回已经授予用户teacher的OPT_ROLE角色。
SQL>REVOKEOPT_ROLEFROMteacher;
撤消成功。
9.3.4启用和禁用角色
一个用户可以同时被授予多个角色,但是并不是所有这些角色都同时起作用。角色可以处于两种状态:激活状态或禁用状态。禁用状态的角色其权限并不生效。
当用户连接到数据库中时,只有他的默认角色(DefaultRole)处于激活状态。在ALTERUSER角色中使用DEFAULTROLE子句可以改变用户的默认角色。
【例9.26】
将用户所拥有的一个角色设置为默认角色。
SQL>ALTERUSERteacherDEFAULTROLEconnect,OPT_ROLE;
用户已更改。
在用户会话的过程中,还可以使用SETROLE语句来激活或禁用他所拥有的角色。用户同时激活的最大角色数目由初始化参数ENABLEDROLES决定(默认值为20)。
【例9.27】
将角色OPT_ROLE设置为激活状态。
SQL>SETROLEOPT_ROLE;
【例9.28】
启用用户所拥有的所有角色。
SQL>SETROLEALL;
【例9.29】
禁用用户所拥有的所有角色。
SQL>SETROLENONE;
9.3.5查询角色信息
为了方便查询角色的有关信息,Oracle提供了以下数据字典视图。
DBA_ROLES视图:查看当前数据库中存在的所有角色。
SESSION_ROLES视图:用户当前启用的角色。
ROLE_ROLE_PRIVS视图:查看角色与权限授予情况,以及是否有传递权限情况。
DBA_ROLE_PRIVS视图:用户(或角色)与角色之间的授予关系。
ROLE_SYS_PRIVS视图:查看系统权限的授予情况。
将角色授予用户后,角色信息存储在用户数据字典user_role_privs中,允许用户查询自己所具有的角色。
其中,GRANTED_ROLE表示为该用户授予的角色名称;ADMIN_OPTION表示该角色是否可以传递给其他用户;NO表示没有角色的传递权。数据库管理员有时需要了解数据库中已经创建了哪些角色,以确定可以使用的角色信息,其所创建的角色存储在数据字典DBA_ROLES视图中。
【例9.31】
查询已经创建的角色。
SQL>selectrole,password_requiredfromdba_roles;
要了解将哪些角色已经授予哪些用户,可以查询数据字典dba_role_privs。
【例9.32】
查询哪些角色已经授予哪些用户。
SQL>selectGRANTEE,GRANTED_ROLE,ADMIN_OPTION
2Fromdba_role_privs;
为用户授予某个角色后,该角色中的权限也就授予了用户。数据库管理员需要了解哪些角色授予了哪些权限,以便知道用户的权限是否使用正确。要了解角色授予了哪些权限,可以通过查询数据字典role_sys_privs。
【例9.33】
查询哪些角色授予了哪些权限。
SQL>selectrole,privilege,admin_option
2Fromrole_sys_privs; 9.4概
要
文
件
9.4.1概要文件的内容
当数据库系统运行时,实例为用户分配一些系统资源,如CPU的使用、分配SGA的空间大小、连接数据库的会话数、用户口令期限等,这些都可以看成是数据库系统的资源。
Oracle系统对每个用户使用的系统资源可以通过概要文件(PROFILE)来管理。
概要文件用来限制用户使用的系统和数据库资源,并管理口令限制。创建用户时,系统提供了一个名为DEFAULT的默认概要文件,也可以创建并指定一个概要文件给用户。
1.限制资源使用
使用概要文件可以限制如下系统资源的使用。
(1)每个会话或每个语句的CPU时间(以百分之一秒计)。
(2)每个会话或每个语句的逻辑磁盘I/O。
(3)每个用户的并发数据库会话。
(4)每个会话的最大连接时间和空闲时间。
(5)可供多进程服务器会话使用的最大的服务器内存。
以下为概要文件中使用的各种限制资源参数。
(1)SESSIONS_PER_USER:该参数限制每个用户所允许建立的最大并发会话数目。达到这个限制时,用户不能再建立任何数据库连接。
(2)CPU_PER_SESSION:该参数限制每个会话所能使用的CPU时间。
(3)CPU_PER_CALL:该参数限制每条SQL语句所能使用的CPU时间。
(4)LOGICAL_READS_PER_SESSION:该参数限制每个会话所能读取的数据块数目,包括从内存中读取的数据块和从硬盘中读取的数据块。
(5) LOGICAL_READS_PER_CALL:
该参数限制每条SQL语句所能读取的数据块数目,包括从内存中读取的数据块和从硬盘中读取的数据块。
(6)CONNECT_TIME:该参数限制每个会话能连接到数据库的最长时间。当连接时间达到该参数的限制时,用户会话将自动断开。
(7)IDLE_TIME:该参数限制每个会话所允许的最大连续空闲时间。如果一个会话持续的空闲时间达到该参数的限制,则该会话将自动断开。
(8)COMPOSITE_LIMIT:该参数用于设置“组合资源限制”。
(9) PRIVATE_SGA:
在共享服务器操作模式下,执行SQL语句和PL/SQL语句时,Oracle将在SGA中创建私有SQL区。该参数限制在SGA中为每个会话所能分配的最大私有SQL区的大小。在专用服务器操作模式下,该参数不起作用。
2.管理用户帐号及口令
使用概要文件可以实现如下口令策略。
(1)帐户的锁定:指用户在连续输入多少次错误的口令后,将由Oracle自动锁定用户的帐户,并且可以设置帐户锁定的时间。
(2)口令的过期时间:用于强制用户定期修改自己的口令。当口令过期后,Oracle将随时提醒用户修改口令。如果用户仍然不修改自己的口令,则Oracle将使他的口令失效。
(3)口令的复杂度:在概要文件中可以通过指定的函数来强制用户的口令必须具有一定的复杂度。
(4)允许用户口令可以持续使用的时间。如果在达到这个限制之前用户还没有更换另外一个口令,则他的口令将失效。
(5)指定用户在能够重复使用一个旧口令前必须经过的天数。
以下为在概要文件中使用的各种口令参数。
(1)FAILED_LOGIN_ATTEMPTS:该参数指定允许的输入错误口令的次数,超过该次数后用户帐户被自动锁定。
(2)PASSWORD_LOCK_TIME:该参数指定用户帐户由于口令输入错误而被锁定后,持续保持锁定状态的时间。
(3)PASSWORD_LIFE_TIME:口令的有效期(天)。
(4) PASSWORD_GRACE_TIME:该参数指定用户口令过期的时间。如果在达到这个限制之前用户还没有更换另外一个口令,则Oracle将对他提出警告。在口令过期之后,用户在达到PASSWORD_LIFE_TIME参数的限制之前有机会主动修改口令。
(5)PASSWORD_REUSE_TIME:该参数指定用户在能够重复使用一个口令前必须经过的时间。
(6)PASSWORD_REUSE_MAX:该参数指定用户在能够重复使用一个口令之前必须对口令进行修改的次数。PASSWORD_REUSE_TIME参数和PASSWORD_REUSE_MAX参数只能设置一个,另一个参数必须指定为UNLIMITED。
(7) PASSWORD_VERIFY_FUNCTION:该参数指定用于验证用户口令复杂度的函数。Oracle通过一个内置脚本提供了一个默认函数,用于验证用户口令的复杂度。所有指定时间的口令参数都以天为单位。
3.启用和禁用概要文件
在数据库启动之前,可以通过设置初始化参数RESOURCE_LIMIT来决定概要文件的状态。如果RESOURCE_LIMIT参数设置为TRUE,则启动数据库后概要文件将处于激活状态;反之,如果RESOURCE_LIMIT参数设置为FALSE,则启动数据库后概要文件将处于禁用状态。默认情况下,RESOURCE_LIMIT参数为FALSE。
在数据库启动之后(处于打开状态),可以使用ALTERSYSTEM语句来改变概要文件的状态,执行该语句的用户必须具有ALTERSYSTEM系统权限。
【例9.34】
利用下面的语句可以将概要文件由禁用状态切换到激活状态。
SQL>ALTERSYSTEMSETRESOURCE_LIMIT=TRUE;
系统已更改。
利用ALTERSYSTEM命令启用资源限制,它只在当前数据库实例的存在期中有效。如果关闭和重新启动Oracle,则概要文件的状态将服从于参数RESOURCE_LIMIT的设置。该参数在服务器端初始化参数文件(SPFILE)时,如果计划永久使用资源限制,则可将参数RESOURCE_LIMIT=TRUE的设置保存在服务器参数文件中。
9.4.2利用OEM创建和管理概要文件
1.在企业管理器中创建概要文件
(1)如图
9-20所示,在快捷菜单中选择“创建”概要文件,出现如图
9-21所示的“创建概要文件”的“一般信息”选项卡。
图
9-20选择“创建”概要文件
图
9-21“创建概要文件”的“一般信息”选项卡
(2)选中“口令”选项卡,如图9-22所示。在每项栏目内键入相应的内容后,单击【创建】按钮,出现如图9-23所示的“概要文件创建成功”界面。
图
9-22“创建概要文件”的“口令”选项卡
图
9-23“概要文件创建成功”界面
(3)按照上述配置创建概要文件的SQL代码如下所述。
CREATEPROFILE"TEMPPROFILE"
/*“一般信息”选项卡对应的配置参数*/
LIMITCPU_PER_SESSION1000
CPU_PER_CALL1000
CONNECT_TIME30
IDLE_TIMEDEFAULT
SESSIONS_PER_USER10
LOGICAL_READS_PER_SESSION1000
LOGICAL_READS_PER_CALL1000
PRIVATE_SGA16K
COMPOSITE_LIMIT1000000
/*“口令”选项卡对应的配置参数*/
FAILED_LOGIN_ATTEMPTS3
PASSWORD_LOCK_TIME5
PASSWORD_GRACE_TIME60
PASSWORD_LIFE_TIME30
PASSWORD_REUSE_MAXDEFAULT
PASSWORD_REUSE_TIME30
PASSWORD_VERIFY_FUNCTIONDEFAULT
2.概要文件的修改
(1)选中要修改的概要文件,如图
9-24所示,在快捷菜单中选择“查看/编辑详细资料”。
图
9-24选择要修改的概要文件
(2)在出现的编辑概要文件的“一般信息”和“口令”选项卡中可修改概要文件的配置参数,对应修改概要文件的SQL语句为“ALTERPROFILE”。
3.将概要文件分配给用户
(1)在该用户的概要文件栏内选择需要的概要文件,如图9-25所示,即可将概要文件分配给用户。
图
9-25分配概要文件
(2)上述过程对应的
SQL代码如下所述。
SQL>ALTERUSERTEACHERPROFILETEMPPROFILE;
用户已更改。
4.概要文件的删除
(1)选中要删除的概要文件,在快捷菜单中选择“移去”,如图
9-26所示。系统会提示是否确认要删除的信息。
(2)删除概要文件的SQL代码如下所述。
SQL>dropprofiletempprofilecascade;
配置文件已丢弃。
图
9-26“移去”概要文件的界面
9.4.3利用SQL命令创建和管理概要文件
1.创建概要文件
使用CREATEPROFILE语句可以创建概要文件,执行该语句的用户必须具有CREATEPROFILE系统权限。创建概要文件的命令格式如下:
CREATEPROFILEprofile_nameLIMIT
resource_parameters|password_parameters
说明:profile_name为要创建的概要文件的名字;resource_parameters为对一个用户指定资源限制的参数;password_parameters为口令参数。
其中,resource_parameters表达式包含:
[SESSIONS_PER_USERinteger|UNLIMITED|DEFAULT]
[CPU_PER_SESSIONinteger|UNLIMITED|DEFAULT]
[CPU_PER_CALLinteger|UNLIMITED|DEFAULT]
[CONNECT_TIMEinteger|UNLIMITED|DEFAULT]
[IDLE_TIME|UNLIMITED|DEFAULT]
[LOGICAL_READS_PER_SESSIONinteger|UNLIMITED|DEFAULT]
[LOGICAL_READS_PER_CALLinteger|UNLIMITED|DEFAULT]
[PRIVATE_SGAinteger{K|M}|UNLIMITED|DEFAULT]
[COMPOSITE_LIMITinteger|UNLIMITED|DEFAULT]
password_parameters表达式包含:
[FAILED_LOGIN_ATTEMPTSexpression|UNLIMITED|DEFAULT]
[PASSWORD_LIFE_TIMEexpression|UNLIMITED|DEFAULT]
PASSWORD_REUSE_TIMEexpression|UNLIMITED|DEFAULT]
[PASSWORD_REUSE_MAXexpression|UNLIMITED|DEFAULT]
[PASSWORD_LOCK_TIMEexpression|UNLIMITED|DEFAULT]
[PASSWORD_GRACE_TIMEexpression|UNLIMITED|DEFAULT]
[[PASSWORD_VERIFY_FUNCTIONexpression|UNLIMITED|DEFAULT]
【例9.35】
创建用户概要文件pro_manager。
SQL>createprofilepro_managerlimit
2SESSIONS_PER_USER4
3Cpu_per_sessionunlimited
4Cpu_per_call600
5IDLE_TIME30
6Connect_time300;
配置文件已创建。
【例9.36】
创建用户manager并指定概要文件。
SQL>createusermanageridentifiedbymanager123
2Defaulttablespaceusers
3Quota10Monusers
4Profilepro_manager;
用户已创建。
2.修改概要文件
概要文件在创建之后,可以使用ALTERPROFILE语句来修改其中的资源参数和口令参数。执行该语句的用户必须具有ALTERPROFILE系统权限。
【例9.37】
修改概要文件pro_manager。
SQL>ALTERPROFILEpro_managerLIMIT
2CPU_PER_CALLDEFAULT
3LOGICAL_READS_PER_SESSION20000;
配置文件已更改。
3.指定概要文件
在使用ALTERUSER语句修改用户时,也可以为他指定概要文件。
【例9.38】
将概要文件pro_manager指定给用户manager。
SQL>ALTERUSERmanagerPROFILEpro_manager;
用户已更改。
4.删除概要文件
使用DROPPROFILE语句可以删除概要文件,执行该语句的用户必须具有DROPPROFILE系统权限。如果要删除的概要文件已经指定给了用户,则必须在DROPPROFILE语句中使用CASCADE关键字。
【例9.39】
删除概要文件pro_manager。
SQL>DROPPROFILEpro_managerCASCADE;
配置文件已丢弃。
如果为用户指定的概要文件已经被删除,则Oracle将自动为用户重新指定DEFAULT概要文件。
9.4.4查询概要文件信息
数据库管理员需要了解当前系统的用户定义状况,可以通过查询概要文件来获得当前实例的所有资源对象信息。以下是与配置文件相关的表和视图。
USER_PASSWORD_LIMITS
USER_RESOURCE_LIMITS
DBA_PROFILES
RESOURCE_COST
V$SESSION
V$SESSTAT
V$STATNAME
【例9.40】
利用dba_profils数据字典视图查询当前用户资源的使用信息。
SQL>SELECTprofile,resource_name,resource_type,limit
2FROMdba_profiles
3ORDERbyprofile; 9.5小
结
Oracle通过使用用户管理、权限与角色、概要文件等措施来保护数据库的安全。
Oracle用户管理的机制是Oracle系统安全性的一个重要方面。Oracle的每个合法用户可以存取其权限规定的数据库资源。
Oracle通过控制用户对数据库的访问可阻止非法用户对资源的访问和破坏。
权限是执行一种特殊类型的SQL语句或存取另一用户的对象的权力。Oracle将权限分为两类:系统权限和对象权限。
角色是一组系统权限和对象权限的集合,把它们组合在一起赋予一个名字,就使授予权限变得简单。
一个角色可授予系统权限或对象权限,任何角色可授权给任何数据库用户。
资源限制概要文件是Oracle安全策略的重要组成部分。概要文件用来限制用户使用的系统和数据库资源,并管理口令限制。
习题九
一、选择题
1.执行了下列语句后,Kevin可以()。(选择三项)
GRANTALLONcdTOKevin;
REVOKEUPDATE;
DELETEONcdFROMKevin;
A.插入和删除记录到表cd
B.插入和查询记录到表cd
C.将部分权限授予其他
D.查询和更新表cd的记录
2.()权限决定了()用户可以在数据库中删除和创建对象。
A.语句权限
B.用户权限
C.数据库权限
D.对象权限
3.以下()特权或角色可以建立数据库。
ASYSDBA B.SYSOPER C.DBA
4.以下()特权或角色可以关闭数据库。
A.SYSDBA B.SYSOPER C.DBA
5.DBA希望使用口令校验函数确保用户口令的复杂性,应该以()用户建立口令校验函数。
A. SYSTEM B. SYS C. SCOTT D. DBSNMP
6.为了同时指定口令限制和资源限制,需要给用户分配()PROFILE。
A.两个
B.三个
C.一个
7.管理口令必须激活资源限制吗?()
A.是
B.不是
8.以下()权限及选项不能被授予角色。
A.UNLIMITEDTABLESPACE
B.WITHADMINOPTION
C. WITHGRANTOPTION
D. CREATESESSION
9.以下()角色具有
UNLIMITEDTABLESPACE系统权限。
A.CONNECT B.RESOURCE
C.DBA
D.EXP_FULL_DATABASE
10.当用户具有以下()角色时可以访问数据字典视图
DBA_XXX。
A.CONNECT B.RESOURCE
C.DBA
D.SELECT_CATALOG_ROLE
11.在以下()对象权限上可以授予列权限。
A.SELECT B.UPDATE
C. DELETE D. INSERTEREFERENCES二、简答题
1.Oracle9i的安全性分为几个层次?
2.简述Oracle的权限分类。
3.什么是角色?创建角色的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 热射病的急救总结2026
- 2025年建筑行业碳抵消项目开发指南
- 2026届广安市高三六校第一次联考历史试卷含解析
- 2026届安徽省马鞍山市高考临考冲刺历史试卷含解析
- 2026年工业机器人自动化创新报告及市场分析
- 循证康复实践中的康复-引领创新
- 2026年智能仓储机器人行业创新报告
- 影像组学特征与肿瘤转移潜能的相关性研究
- 2026年增强现实工业培训报告及未来五至十年混合现实技术报告
- 2026年全球鸡尾酒报告
- 2026中国铁路兰州局集团有限公司招聘普通高校毕业生113人(三)笔试备考题库及答案解析
- 精神科风险评估管理规范2026.1.10
- 2026年中国邮政集团面试与笔试全攻略
- 2026无锡市中考历史押题必刷卷含答案
- 第10课 学会表达 课件(内嵌视频)2025-2026学年道德与法治三年级下册统编版
- 2025-2030韩国造船设备行业市场深度调研及发展趋势与投资前景预测研究报告
- 发展对象应知应会题库
- 内蒙古自治区包头市2025-2026学年中考二模物理试题(含答案解析)
- 雨课堂学堂在线学堂云人工智能与医学数据计算(中国医科大学)单元测试考核答案
- 广东省江门市2026年高考模拟考试(一模)英语试题( 含答案)
- 瑞幸咖啡入职在线测评题库
评论
0/150
提交评论