ORACLE10G经典实战第7章 系统安全管理.ppt

上传人:文库蛋蛋多 文档编号:2279475 上传时间:2023-02-09 格式:PPT 页数:80 大小:2.43MB
返回 下载 相关 举报
ORACLE10G经典实战第7章 系统安全管理.ppt_第1页
第1页 / 共80页
ORACLE10G经典实战第7章 系统安全管理.ppt_第2页
第2页 / 共80页
ORACLE10G经典实战第7章 系统安全管理.ppt_第3页
第3页 / 共80页
ORACLE10G经典实战第7章 系统安全管理.ppt_第4页
第4页 / 共80页
ORACLE10G经典实战第7章 系统安全管理.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《ORACLE10G经典实战第7章 系统安全管理.ppt》由会员分享,可在线阅读,更多相关《ORACLE10G经典实战第7章 系统安全管理.ppt(80页珍藏版)》请在三一办公上搜索。

1、第7章 系统安全管理,数据库中保存了大量的数据,有些数据对企业是极其重要的,是企业的核心机密,必须保证这些数据和操作的安全。因此,数据库系统必须具备完善、方便的安全管理机制。Oracle中,数据库的安全性主要包括:(1)对用户登录进行身份认证。当用户登录到数据库系统时,系统对该用户的账号和口令进行认证,包括确认用户账户是否有效以及能否访问数据库系统。(2)对用户操作进行权限控制。当用户登录到数据库后,只能对数据库中的数据在允许的权限内进行操作。数据库管理员(简称DBA),对数据库的管理具有最高的权限。一个用户如果要对某一数据库进行操作,必须满足以下三个条件:(1)登录Oracle服务器时必须通

2、过身份验证;(2)必须是该数据库的用户或者是某一数据库角色的成员;(3)必须有执行该操作的权限。在Oracle系统中,为了实现这种安全性,采取了用户、角色和概要文件等的管理策略。,7.1 用户,Oracle有一套严格的用户管理机制,新创建的用户只有通过管理员授权才能获得系统数据库的使用权限,否则该用户只有连接数据库的权利。正是有了这一套严格的安全管理机制,才保证了数据库系统的正常运转,确保数据信息不泄露。7.1.1 创建用户用户(USER)就是使用数据库系统的所有合法操作者。Oracle 10g有两个基本用户:SYSTEM和SYS。创建用户就是建立一个安全、有用的帐户,并且这个帐户要有充分的权

3、限和正确的缺省设置值。用户既可以在OEM中创建,也可以使用SQL命令来创建。,7.1.1 创建用户,1.利用OEM创建用户(1)在图7.1所示的界面中,选中用户单击鼠标左键,进入“用户搜索”界面,如图7.2所示。图7.2列出了已存在的用户及帐户的状态、使用的概要文件和创建时间等用户基本信息。,图7.1 Oracle企业管理器,7.1.1 创建用户,图7.2用户搜索界面,7.1.1 创建用户,(2)单击“创建”按钮,进入“用户创建”界面,如图7.3所示。,图7.3一般信息选项页面,7.1.1 创建用户,(3)“一般信息”选项页面。“一般信息”选项页面包括如下几个方面:名称:将要创建的用户名,用户

4、名一般采用Oracle 10g字符集中的字符,最长可为30个字节。概要文件:指定分配给用户的概要文件。默认分配一个DEFAULT概要文件。验证:指定Oracle用来验证用户的方法。Oracle有3种验证用户的方法:口令、外部和全局。当使用口令验证时,选择“口令”选项;当使用操作系统用户名(在此是WIN2003的用户名)时,选择“外部”;当用户在多个数据库中被全局标识时,选择“全局”。输入口令和验证口令:只有在“验证”选择“口令”时才有效。只有在两者完全一致时才通过确认。口令即刻失效:撤消原来的口令,撤消后可以更改用户口令。默认表空间:为用户创建的对象选择默认表空间。临时表空间:为用户创建的对象

5、选择临时表空间。状态锁定:锁定用户的帐户并禁止访问该帐户。状态未锁定:解除对用户帐户的锁定并允许访问该帐户。输入新用户名称NICK;分配给用户的概要文件为DEFAULT;设定自己的口令如manager;其它选项均为默认值。,7.1.1 创建用户,(4)“角色”选项页面。角色选项页面如图7.4所示。在该选项页面中,可以把某些角色赋予新用户,这样新用户就继承了这些角色的权限。界面中的表格包括以下3列:角色:角色名称。管理理选项:表示新用户是否可以将角色授予其他用户或角色,默认情况下为禁用,用鼠标单击“管理选项”标记可以解除禁用。默认值:选中后,表示用户一旦登录到系统中,系统将会将所选角色设置为用户

6、默认的角色。新用户默认的拥有CONNECT角色的权限。单击“编辑列表”按钮,打开“修改角色”界面,如图7.5所示。“可用角色”列表框中列出了当前可用的角色。先在列表中选择要赋予新用户的角色,然后通过向右的箭头按钮或者双击该角色,把所选角色添加到“所选角色”列表中;通过向左的箭头或双击取消在“所选角色”列表中选中的角色。单击“确定”,界面返回到图7.5所示界面,此时在该界面可以看到刚才所选的角色。,7.1.1 创建用户,图7.4角色选项页面,图7.5修改角色界面,7.1.1 创建用户,(5)“系统权限”选项页面。“系统权限”选项页面如图7.6所示。在该选项页面,赋予新用户指定的权限。单击“编辑列

7、表”按钮,打开“修改系统权限”界面,如图7.7所示。,图7.6系统权限选项页面,图7.7修改系统权限界面,7.1.1 创建用户,(6)对象权限选项页面。对象权限选项页面如图7.8所示。在该选项页面中,可以为新用户授予操纵指定对象的权限。,图7.8对象权限选项页面,7.1.1 创建用户,(7)在“选择对象类型”下拉框选择对象,如表,单击添加,打开“表对象”添加界面,如图7.9所示。,图7.9添加对象权限界面,7.1.1 创建用户,(8)单击“手电筒”形状的按钮,进入“选择表对象”界面,如图7.10所示。勾选要赋予权限的表,单击“选择”按钮,返回到如图7.9所示的界面,在此时在“选择表对象”列表框

8、出现刚才选择所有表。,图7.10选择表对象界面,7.1.1 创建用户,在“可用权限”列表框选择相应权限,使用右箭头或双击鼠标左键把选中的系统权限添加到“所选权限”列表框中;使用左肩头取消“所选权限”列表框中所列出的所有已授予的权限。单击“确定”按钮,返回到图7.8所示界面,此时界面列出了所设置的表对象相应的权限情况。该界面列表列出了对象权限的信息:权限:表示已授予的权限。方案:表示已授予权限所属方案。对象:表示已授予的数据库对象。授权选项:是否可以授权给其他用户。选择要删除的对象权限,单击“删除”按钮可以删除该对象权限。根据实际情况,按照添加表对象权限的操作给新用户赋予相应的对象权限。,7.1

9、.1 创建用户,(9)限额选项页面。限额选项页面如图7.11所示。在该选项页面中对新用户指定对应表空间的大小限额。在列表中选择表空间并通过选择“无”、“无限制”或“值”单选按钮指定限额大小。在此对所有表空间选择“无”。,图7.11限额选项页面,7.1.1 创建用户,(10)使用者组切换权限选项页面。使用者组切换权限选项页面如图7.12所示。在该选项页面,可以为新用户授予相应的使用者组的权限。单击“修改”按钮,进入“修改使用者组”界面,如图7.13所示。,图7.12使用者组切换权限选项页面,图7.13修改使用者组界面,7.1.1 创建用户,(11)代理用户选项页面。代理用户选项页面如图7.14所

10、示。在该选项页面中可以指定可代理新用户的用户和指定新用户可代理的用户。,图7.14代理用户选项页面,7.1.1 创建用户,单击“可代理此用户的用户”栏的“添加”按钮,进入“用户选择”界面,如图7.15所示。勾选可代理新用户的用户,单击“选择”按钮,返回到图7.14所示界面,此时“可代理此用户的用户”栏出现刚才勾选的所有用户。若要删除某个用户,选中用户名前单选按钮,单击“移去”按钮,即可删除。,图7.15用户选择界面,7.1.1 创建用户,至此,新用户的所有信息以及权限都已设置完成,单击“显示SQL”按钮,可以查看创建该用户相应的SQL命令,如图7.16所示。在图7.15所示界面中单击“确定”按

11、钮,系统完成创建工作后返回到图7.2所示界面,完成创建用户操作过程。,图7.16创建新用户的SQL语句,7.1.1 创建用户,2.利用SQL语句创建用户可以使用CREATE USER命令来创建一个新的数据库用户帐户,但是创建者必须具有CREATE USER系统权限。语法格式:CREATE USER user_name/*将要创建的用户名*/IDENTIFIED BY password|EXTERNALLLY|GLOBALLY AS external_name/*表明Oracle如何验证用户*/DEFAULT TABLESPACE tablespace_name/*标识用户所创建对象的缺省表空间

12、*/TEMPORARY TABLESPACE tablespace_name/*标识用户的临时段的表空间*/QUOTA integer K|integer M|UNLIMTED ON tablespace_name/*用户规定的表空间存储对象,最多可达到这个定额规定的总尺寸*/PROFILE profile_name/*将指定的概要文件分配给用户*/DEFAULT ROLE role,nALLEXCEPT role,n NONEPASSWORD EXPIREACCOUNT LOCK|NULOCK/*帐户是否锁定*/,7.1.1 创建用户,2.利用SQL语句创建用户其中:user_name:将要

13、创建用户的名称。IDENTIFIED:表示Oracle如何验证用户。BY password:创建一个本地用户,该用户必须指定password进行登录。Password只能包含数据库字符集中的单字节字符,而不管该字符集是否还包含多字节字符。EXTERNALLY:创建一个外部用户,该用户必须由外部服务程序(如操作系统或第三方服务程序)来进行验证。GLOBALLY AS external_name:创建一个全局用户(global user),必须由企业目录服务器验证用户。DEFAULT TABLESPACE:标识用户所创建对象的缺省表空间为tablespace_name指定的表空间。如果忽略该子句就

14、放入SYSTEM表空间。TEMPORARY TABLESPACE:标识用户的临时段的表空间为tablespace_name指定的表空间。如果忽略该子句,临时段就缺省为SYSTEM表空间。QUOTA:允许用在以tablespace_name指定的表空间中分配空间定额并建立一个integer字节的定额,使用K或M来指定该定额,以千字节或兆字节为单位。PROFILE:将profile_name指定的概要文件分配给用户。该概要文件限制用户可使用的数据库资源的总量。DEFAULT ROLE:允许将一个或多个缺省角色分配给用户。Role是将要分配的预定义角色,n代表可以分配多个,中间用“,”隔离。ALLE

15、XCEPT role:把所有预定义的角色分配给用户,或把指定的那些角色除外的所有角色分配给用户。NONE:不分配给用户角色。PASSWORD EXPIRE:使用户的password失效。ACCOUNT LOCK:锁定用户的帐户并禁止访问。ACCOUNT UNLOCK:解除用户的帐户的锁定并允许访问该帐户。,7.1.1 创建用户,【例7.1】创建一个名称为AUTHOR的用户,口令为ANGEL,缺省表空间为USERS,临时表空间为TEMP。没有定额,使用缺省概要文件。CREATE USER AUTHOR IDENTIFIED BY ANGELDEFAULT TABLESPACE USERSTEMP

16、ORARY TABLESPACE TEMP;当使用CREATE USER语句创建用户时,该用户权限域为空。可以使用该用户登录到Oracle,但使用该用户不能进行任何操作。给用户授予权限可以使用GRANT语句来实现。语法格式:GRANT system_priv|role TO userWITH ADMIN OPTIN其中:system_priv:要授予的系统权限。如果把权限授予了user,Oracle就把权限添加到该用户的权限域,该用户立即可使用该权限。Role:要授予的角色,一旦授予用户角色,该用户就能行使该角色的权限。WITH ADMIN OPTIN:把向其他用户授权的能力传递给被授予者。,

17、7.1.1 创建用户,【例7.2】授予例7.1所创建的用户AUTHOR以DBA的角色。GRANT DBA TO AUTHOR;授予用户AUTHOR一些系统权限,并且该用户可以向其他用户授权。GRANT CREATE ANY TABLE,CREATE ANY VIEW TO AUTHORWITH ADMIN OPTION;【例7.3】重新创建用户AUTHOR,口令为ANGEL,缺省表空间为USERS,临时表空间为TEMP。没有定额,使用缺省概要文件,授予所有预定义角色,登录数据库前修改口令。DROP USER AUTHOR;CREATE USER AUTHOR IDENTIFIED BY ANG

18、ELDEFAULT TABLESPACE USERSTEMPORARY TABLESPACE TEMPPASSWORD EXPIRE;,7.1.2管理用户,1.利用OEM管理用户在如图7.2所示的界面中,查找并选择要更改的用户。也可以通过搜索功能查找具体某个用户,在搜索栏的“名称”文本框输入具体用户名称,如NICK,单击“开始”按钮,如果存在Nick用户,则显示在结果栏。选择NICK用户,单击“编辑”按钮,进入“编辑用户”界面,如图7.17所示,可以看出,针对某一用户的管理窗口和创建用户窗口相似,具体操作和创建用户也相似。,图7.17编辑用户界面,7.1.2管理用户,2.利用SQL语句管理用户

19、利用SQL语句的ALTER USER、GRANT USER和REVOKE命令也可以管理用户,但前提是执行者必须具有ALTER USER和REVOKE权限。但更改自己的口令不需该权限。(1)ALTER USER命令语法格式:ALTER USER user_nameIDENTIFIED BY passwordEXTERNALLYGLOBALLY AS external_nameDEFAULT TABLESPACE tablespace_nameTEMPORARY TABLESPACE tablespace_nameQUOTA integer K|integer M|UNLIMTED ON tabl

20、espace_namePROFILE profile_nameDEFAULT ROLE roleALLEXCEPT role NONEPASSWORD EXPIREACCOUNT LOCK|UNLOCK,7.1.2管理用户,其中:IDENTIFIED GLOBALLY AS:表明用户必须通过LDAP V3兼容目录服务(如Oracle Internet Directory)验证。只有当直接授给该用户的所有外部角色被收回时才能将验证用户访问的方法更改为IDENTIFIED GLOBALLY AS external_name。DEFAULT ROLE:只包含用GRANT语句直接授予用户的角色。不能用

21、DEFAULT ROLE子句去启用下列角色:没有授予用户的角色。通过其他角色授予的角色。由外部服务(如操作系统)或Oracle Internet Directory管理的角色。ALTER USER语句中其他关键字和参数与CREATE USER语句中的意思相同。(2)REVOKE命令语法格式:REVOKE system_priv|role FROM USER其中:system_priv是赋予用户的系统权限;role是赋予用户的角色。,7.1.2管理用户,【例7.4】赋予用户权限和角色。授予AUTHOR的定额USERS表空间中的100MB。ALTER USER AUTHORQUOTA 100M O

22、N USERS;锁定AUTHOR用户帐户。ALTER USER AUTHORACCOUNT LOCK;回收用户AUTHOR的DBA的角色。REVOKE DBA FROM AUTHOR;回收用户NICK对表XS修改的权限。REVOKE ALTER ON ADMIN.XS FROM NICK;回收用户NICK和AUTHOR对表XS删除和插入数据的权限。REVOKE DELETE,INSERT ON ADMINXS FROM NICK,AUTHOR;回收用户的权限时,如果回收的权限并没有赋予用户,那么系统会提示未赋予用户该权限。,7.1.2管理用户,3.删除用户在图7.11所示的窗口中,在用户文件夹

23、下选择要删除的用户,单击右键,在弹出的快捷菜单中选择“移去”,即可删除所选择的用户。使用DROP命令也可以从数据库中撤消一个用户。这个命令只有一个参数,即CASCADE,在撤消该用户之前,它撤消用户模式中的所有对象。如果用户拥有对象,必须指定CASCADE以撤消用户。下面给出一个样本DROP USER命令:DROP USER AUTHOR CASCADE;,7.2 权限和角色,当数据库较小、访问数据库的用户不多时,对用户在每个表上要求的特定访问进行授权还是可以接受的。但是,随着数据库的增大以及用户数量的增多,数据库的维护将会成为很麻烦的事情。在实际的权限分配方案中,通常是这样运用角色的,先由D

24、BA为数据库定义一系列的角色,然后再由DBA将权限分配给基于这些角色的用户。,7.2.1角色,1.两种角色(1)安全应用角色。DBA可以授予安全应用角色运行给定数据库应用时所有必要的权限。然后将该安全应用角色授予其他角色或者用户,应用可以包含几个不同的角色,每个角色都包含不同的权限集合。(2)用户角色。DBA可以为数据库用户组创建用户角色,赋予一般的权限需要。2.数据库角色(1)角色可以被授予系统和方案对象权限。(2)角色被授予其他角色。(3)任何角色可以被授予任何数据库对象。(4)授予用户的角色,在给定的时间里,要么启用,要么禁用。3.角色和用户的安全域每个角色和用户都包含自己唯一的安全域,

25、角色的安全域包括授予角色的权限。用户安全域包括对应方案中的所有方案对象的权限,授予用户的权限和授予当前起用的用户的角色的权限。用户安全域同样包含授予用户组PUBLIC的权限和角色。4.预定义角色Oracle系统在按照完成后就有整套的用于系统管理的角色,这些角色称为预定义角色。Oracle 10g的预定义角色比以前版本有所增加,表71是Oracle 10g预定义角色。,7.2.1角色,表7-1 Oracle10g预定角色,表7-1 Oracle10g预定角色,7.2.2创建角色,1.利用OEM创建角色创建角色的方法和创建用户的方法类似,使用的界面也有许多相同之处。在图7.1所示的界面中,选中“角

26、色”单击左键,进入“角色搜索”界面,如图7.18所示。,图7.18角色搜索界面,7.2.2创建角色,图7.18界面列出所有已存在的角色。单击“创建”按钮,进入“创建角色”界面,如图7.19所示,该界面包括“一般信息”、“角色”、“系统权限”、“对象权限”和“使用者组切换组”5个选项页面。,图7.19创建角色 一般信息界面,7.2.2创建角色,(1)“一般信息”选项页面:在“名称”文本框输入新角色名称,如WORLD。Oracle提供了下列4种确定启用角色时验证的方法:无:启用角色时不用口令验证。口令:需要口令验证,口令正确才能使用角色。外部:验证操作系统中的用户。全局:用户在多个数据库中被全局标

27、识。如果选择“口令”,则需要输入两次相同的口令。在此选择“无”选项。(2)角色选项页面:角色选项页面如图7.20所示。在该选项页面中,可以把某个角色赋予新角色,这样新角色就继承了相应角色的权限。这个选项页面中的信息和创建用户的角色选项卡类似。在此把DBA和CONNECT角色赋予新角色,这样新角色拥有了DBA和CONNECT角色同样的权限。(3)系统权限选项页面:系统权限选项页面如图7.21所示。在界面中授予新角色系统权限使之继承相应的权限。该选项页面的信息和操作方法与创建用户的系统权限选项页面类似。在此授予SYSDBA系统权限,7.2.2创建角色,图7.20创建角色角色选项页面,图7.21创建

28、角色系统权限选项页面,7.2.2创建角色,(4)对象权限选项页面:对象权限选项界面如图7.22所示。在该界面中授予新角色对象权限使之继承相应的权限。该选项页面的信息和操作方法与图创建用户的系统权限选项页面类似。根据需要授予新角色相应的对象权限。,图7.22创建角色对象权限选项页面,7.2.2创建角色,(5)使用者组切换权限选项页面:使用者组选项界面如图7.23所示。在该选项页面中,可以将新角色授予相应的使用者权限。该选项页面的信息和操作方法与创建用户的系统权限选项页面类似。根据需要授予新角色相应的使用者权限。确认5个选项页面设置无误后,单击“确定”按钮,创建成功后系统返回到图7.18所示界面,

29、完成创建角色操作。,图7.23创建角色使用者选项页面,7.2.2创建角色,2.利用SQL命令创建角色利用CREATE ROLE创建的新角色在最初权限是空的,可用GRANT语句将权限添加到角色中。(1)CREATE ROLE语句语法格式:CREATE ROLE role_name NOT IDENTIFIEDIDENTIFIED BY passwordEXTERNALLYGLOBALLY其中:role_name:新创建角色的名称。NOT IDENTIFIED:该角色由数据库授权,不需要口令使该角色生效。DENTIFIED:在用SET ROLE语句使该角色生效之前必须由指定的方法来授权一个用户。B

30、Y password:创建一个局部用户,在使角色生效之前,用户必须指定password定义的口令。口令只能是数据库字符集中的单字节字符。EXTERNALLY:创建一个外部用户。在使角色生效之前,必须由外部服务(如操作系统)来授权用户。GLOBALLY:创建一个全局用户。在利用SET ROLE语句使角色生效前或在登录时,用户必须由企业目录服务授权使用该角色。,7.2.2创建角色,2.利用SQL命令创建角色(2)GRANT语句语法格式:GRANT system_priv|role TO roleWITH ADMIN OPTIN参数和关键字含义同权限添加到用户中的GRANT语句【例7.5】创建一个新

31、的角色ACCOUNT_CREATE,它只能创建用户,而不能执行其他DBA级命令。CREATE ROLE ACCOUNT_CREATE;GRANT CREATE SESSION,CREATE USER,ALTER USER TO ACCOUNT_CREATE;,7.2.3管理角色,角色管理就是修改角色的权限、生成角色报告和删除角色等工作。1.利用OEM管理角色(1)修改角色如图7.18所示,在“角色搜索”界面中,选择要更改的角色名称,单击“修改”按钮,进入“编辑角色”界面。某一角色的管理界面和创建角色界面相似,具体操作和创建角色也相似,在此不在赘述。(2)删除角色要删除某个角色,在如图7.18所

32、示的窗口中选择要删除的角色;也可以通过搜索功能查找某个角色,然后单击“删除”按钮,在“确认”界面单击“是”,即可删除角色。,7.2.3管理角色,2.利用SQL语句管理角色利用SQL语句的ALTER ROLE、GRANT ROLE和REVOKE命令也可以管理角色。操作者必须被授予具有ADMIN OPTION的角色或具有ALTER ANY ROLW系统权限。语法格式:ALTER ROLE role_name NOT IDENTIFIED IDENTIFIED BY passwordEXTERNALLYGLOBALLY ALTER ROLE语句的关键字和参数CREATE ROLE语句的相同,请参照C

33、REATE ROLE语句的关键字和参数含义。使用SQL语句管理角色和使用SQL语句管理用户基本一样,请读者参照使用SQL语句管理用户的方法,自己尝试一下。在此说明一点,在将角色修改为IDENTIFIED GLOBALLY之前,必须注意:(1)取消所有在外部识别的角色授权。(2)取消所有用户、角色和PUBLIC的角色授权。,7.2.4权限管理,权限是执行特定SQL语句和访问对象的权利。权限被授予的用户能够完成这些特定的工作。一个用户可以通过两种方式得到权限:(1)显式地将权限授予给用户。(2)可以将权限授予某个角色,然后为用户加入这个角色。由于使用角色管理权限比较简单,所以一般先将权限授予给角色

34、,然后分配给各个用户。Oracle支持系统权限和方案对象权限。1.系统权限系统权限是执行特定操作(例如创建数据库、从表中删除行数据等)的权限。Oracle中包含60种不同的系统权限。可以将系统权限授予用户和角色,如果将系统权限授予某个角色,就可以使用该角色管理系统权限。有两种方法可以授予或回收系统权限,一是使用OEM,二是使用SQL语句GRANT和REVOKE。注意:由于系统权限大,在数据库配置时,对于一般用户尽量不要授予在数据字典上使用ANY系统权限(如ALTER ANY TABLE)。,7.2.4权限管理,2.方案对象权限方案对象权限是对特定方案对象执行特定操作的权利,这些方案对象主要包括

35、表、视图、序列、过程、函数和包等。有些方案对象(如簇、索引、触发器和数据库链接)没有对应的对象权限,它们是通过系统权限控制的。例如,修改簇用户必须拥有ALTER ANY CLUSER系统权限。Oracle方案对象有下列9种权限:(1)SELECT:读取表、视图、序列中的行。(2)UPDATE:更新表、视图和序列中的行。(3)DELETE:删除表、视图中的数据。(4)INSERT:向表和视图中插入数据。(5)EXECUTE:执行类型、函数、包和过程。(6)READ:读取数据字典中的数据。(7)INDEX:生成索引。(8)PEFERENCES:生成外键。(9)ALTER:修改表、序列、同义词中的结

36、构。,7.2.5 安全特性,1.表安全在表和视图上赋予DELETE、INSERT、SELECT和UPDATE权限可进行查询和操作表数据。可以限制INSERT权限到表的特定的列,而所有其他列都接受NULL或者默认值。使用可选的UPDATE,用户能够更新特定列的值。如果用户需要在表上执行DDL操作,那么需要ALTER、INDEX和REFERNCES权限还可能需要其他系统或者对象权限。例如,如果需要在表上创建触发器,用户就需要ALTER TABLE对象权限和CREATE TRIGGER系统权限。与INSERT和UPDATE权限相同,REFRENCES权限能够对表的特定列授予权限。2.视图安全对视图的

37、方案对象权限允许执行大量的DML操作,影响视图创建的基表,对表的DML对象权限与视图相似。要创建视图,必须满足下面2条:(1)授予CREATE VIEW系统权限或者CREATE ANY VIEW系统权限。(2)显式授予SELECT、INSERT、UPDATE和DELETE对象权限,或者显式授予SELECT ANY TABLE、INSERT ANY TABLE、UPDATE ANY TABLE、DELETE ANY TABLE系统权限。为了其他用户能够访问视图,可以通过GRANT OPTION子句或者使用ADMIN OPTION子句授予适当的系统权限。由于下面2条:(1)视图访问基表的所选择的列

38、的数据。(2)在定义视图时,使用WHERE子句控制基表的部分数据。上述两点可以增加表的安全层次,包括列层和基于值的安全性,7.2.5 安全特性,3.过程安全过程方案的对象权限(其中包括独立的过程、函数和包)只有EXECUTE权限。将这个权限授予需要执行过程或需要编译另一个需要调用它的过程。(1)过程对象。具有某个过程的EXECUTE对象权限的用户可以执行该过程,也可以编译引用该过程的程序单元。过程调用时不会检查权限。具有EXECUTE ANY PROCEDURE系统权限的用户可以执行数据库中的任何过程。当用户需要创建过程时,必须拥有CREATE PROCEDURE系统权限或者是CREATE A

39、NY PROCEDURE系统权限。当需要修改过程时,需要ALTER ANY PROCEDURE系统权限。拥有过程的用户必须拥有在过程体中引用的方案对象的权限。为了创建过程,必须为过程引用的所有对象授予用户必要的权限。(2)包对象。拥有包的EXECUTE对象权限的用户,可以执行包中的任何公共过程和函数,能够访问和修改任何公共包变量的值。对于包不能授予EXECUTE权限,当为数据库应用开发过程、函数和包时,要考虑建立安全性。,7.2.5 安全特性,4.类型安全(1)命名类型的系统权限Oracle 10g为命名类型(对象类型、VARRAY和嵌套表)定义了系统权限,如表7.2所示。,表7.2命名类型的

40、系统权限,7.2.5 安全特性,4.类型安全(2)对象权限。如果在命名类型上存在EXECUTE权限,那么用户可以使用命名类型完成定义表、在关系包中定义列及声明命名类型的变量和类型。(3)创建类型和表权限。在创建类型时,必须满足以下要求:如果在自己模式上创建类型,则必须拥有CREATE TYPE系统权限;如果需要在其他用户上创建类型,则必须拥有CREATE ANY TYPE系统权限。类型的所有者必须显式授予访问定义类型引用的其他类型的EXECUTE权限,或者授予EXECUTE ANY TYPE系统权限,所有者不能通过角色获取所需的权限。如果类型所有者需要访问其他类型,则必须已经接受EXECUTE

41、权限或者是EXECUTE ANY TYPE系统权限。如果使用类型创建表,则必须满足以下要求:表的所有者必须显式授予EXECUTE对象权限,能够访问所有引用的类型,或者授予EXECUTE ANY TYPE系统权限。如果表的所有者需要访问其他用户的表时,则必须在GRANT OPTION选项中接受参考类型的EXECUTE对象权限,或者在ADMIN OPTION中接受EXECUTE ANY TYPE系统权限。,7.2.5 安全特性,【例7.6】使用类型创建类型和表的权限。假设USER1、USER2和USER3这三个用户都有CONNECT和RESOURCE角色。USER1在自己的模式执行下面的DDL语句

42、:CREATE TYPE type1 AS OBJECT(attr1 number);CREATE TYPE type2 AS OBJECT(attr2 number);GRANT EXECUTE ON type1 TO USER2;GRANT EXECUTE ON type2 TO USER2WITH CRANT OPTION;USER2在自己的模式执行下面的DDL语句:CREATE TABLE tab1 OF USER1.type1;CREATE TYPE type3 AS OBJECT(attr3 user1.type2);CREATE TABLE tab2(col1 user1.typ

43、e2);由于USER2在GRANT OPTION中拥有对USER1的TYPE2的EXECUTE2权限,所以能够成功执行。GRANT EXECUTE ON type3 TO USER3;GRANT SELECT ON tab2 TO USER3;然而,由于在GRANT OPTION中USER2没有USER1的TYPE的EXECUTE权限,所以下面的授权失败:CRANT SELECT ON tab1 TO USER3;USER3可以成功执行下面的语句:CREATE TYPE type4 AS OBJECT(attr4 user2.type3);CREATE TABLE tab3 OF type4;

44、,7.2.5 安全特性,4.类型安全(4)类型访问和对象访问的权限。在列层和表层上的DML命令权限,可以应用到对象列和行对象上。Oracle为对象表定义的权限如表7.3所示。,表7.3对象表的权限,7.3 概要文件和数据字典视图,概要文件用来限制由用户使用的系统和数据库资源,并管理口令限制。如果数据库中没有创建概要文件,将使用默认的概要文件。7.3.1创建概要文件可以使用OEM或SQL语句来创建概要文件。1.使用OEM创建概要文件启动并登录到OEM,以SYSDBA的身份连接到要操作的数据库,如图7.1所示。选择“概要文件”,进入“概要文件搜索”界面,如图7.24所示。在该界面单击“创建”按钮,

45、进入“创建概要文件”界面,如图7.25所示。该界面包括一般信息和口令两个选项页面,通过对选项页面中信息的设置,可以完成概要文件的定义。,7.3.1创建概要文件,1.使用OEM创建概要文件,图7.24概要文件搜索界面,图7.25创建概要文件 一般信息选项页面,7.3.1创建概要文件,(1)一般信息选项页面。在如图7.25所示的“一般信息”选项界面中,可以指定将要创建的概要文件的名称以及其他详细资料和数据库服务。详细资料区设置的内容如下:CPU/会话:一个会话占用CPU的时间总量(以秒/100为单位)。CPU/调用:一个调用占用CPU的时间最大值(以秒/100为单位)。连接时间:一个会话持续的时间

46、的最大值(以分钟为单位)。空闲时间:一个会话处于空闲状态的时间最大值(以分钟为单位)。空闲时间是会话中持续不活动的一段时间。长时间运行的查询和其他操作不受此限值的约束。数据库服务区设置的内容如下:并行会话数:一个用户进行并行会话的最大数量。读取数/会话:一个会话读取的数据块总量。该限值包括从内存和磁盘读取的块。读取数/调用:一个调用在处理一个PL/SQL语句时读取数据块的最大数量。专用SGA:在系统全局区(SGA)的共享池中,一个会话可分配的专用空间量的最大值。专用SGA的限值只在使用多线程服务器体系结构的情况下适用。限制:一个会话耗费的资源总量。它包括会话占用CPU的时间、连接时间、会话中的

47、读取数和分配的专用SGA空间量 Default:使用DEFAULT概要文件中为该资源指定的限值。Unlimited:可以不受限制地利用该资源。值:在现有值中选择一个。这些默认值是该项目的常用值,这些值根据项目的不同而不同。,7.3.1创建概要文件,(2)口令选项页面。口令选项界面如图7.26。在该界面可以设置帐户口令各种参数。,图7.26创建概要文件口令选项页面,7.3.1创建概要文件,对于“口令”选项,可以设置有效期和失效后锁定状态。有效期:多少天后口令失效。最大锁定天数:口令失效后第一次用它登录后多少天内可以更改此口令。对于“历史记录”选项,设置如何保留。保留的口令数:口令能被重新使用前必

48、须被更改的次数。保留天数:限定口令失效后经过多少天才可以重新使用。分配了该概要文件的用户,在登录到数据库时允许使用一个PL/SQL例行程序来校验口令。PL/SQL例行程序必须在本地使用,才能在应用该概要文件的数据库上执行。Oracle提供了一个默认脚本(utlpwdmg.sql),也可以创建自己的例行程序或使用第三方软件。检验口令的例行程序必须归SYS所有。默认情况下的设置为“空”,即不进行口令校验。若选择“启用口令复杂性函数”复选框,则可以强制用户的口令符合复杂度标准。例如,可以要求口令的最小长度、不是一些简单的词、至少包括一个数字或标点符号。若选择“登录失败后锁定帐户”复选框,则可以设置限

49、定用户在登录几次失败后将无法使用该帐户;在登录失败达到指定次数后,指定该帐户将被锁定的天数。如果选择了“Unlimited”选项,只有数据库管理员才能为该帐户解除锁定。单击“确定”按钮,系统创建概要文件。概要文件创建成功后,返回到图7.24所示的界面,完成创建操作,此时能在该界面看到上面所创建的概要文件的基本信息。,7.3.1创建概要文件,2.使用CREATE PROFILE命令创建概要文件 语法格式:CREATE PROFILE LIMIT profile_nameresource_parameterspassword_parameters说明:profile_name:将要创建的概要文件的

50、名称。resource_parameters:对一个用户指定资源限制的参数。password_parameters:口令参数。,7.3.1创建概要文件,2.使用CREATE PROFILE命令创建概要文件resource_parameters的表达式语法格式:SESSIONS_PER_USER integerUNLIMITEDDEFAULT/*限制一个用户并发会话个数*/CPU_PER_SESSION integerUNLIMITEDDEFAULT/*限制一次会话的CPU时间,以秒/100为单位*/CPU_PER_CALL integerUNLIMITEDDEFAULT/*限制一次调用的CPU

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号