登陆注册
18668900000019

第19章 数据库的保护(3)

(3)对象权限的回收

使用REVOKE命令可以从一个用户或角色中回收对象权限,假如用户已经将此权限授予给其他用户,则用户都可以从其他用户身上回收此权限。回收对象权限的语法如下:

REVOKE{对象权限[,对象权限]……|ALL[PRIVILEGES]}

ON 对象名

FROM{用户名|角色|PUBLIC}[,{用户名|角色|PUBLIC}]……

其中:对象权限用于指定被授予的对象权限;ALL用于回收授予给用户的所有对象权限;ON用于指定将被回收对象权限的对象名;FROM用于指定将被回收权限的用户或角色。

注意:假如用户A被授予带WITH GRANT OPTION从句的对象权限,并且用户A又将此权限授予给了用户B,当用户A的权限被回收时,用户B的权限也被回收,并且用户A和B中与此权限有关的对象都变成无效。

例8-16 从JAMES身上回收对CUSTOMER表的更新权限。

SQL>REVOKE UPDATE ON CUSTOMER FROM JAMES

例8-17 scott用户从JAMES用户身上回收emp表上的所有权限。

SQL>REVOKE ALL ON emp FROM JAMES

(4)查询对象权限信息

对象权限可以从数据字典中获得。

8.1.2.3 角色的管理

1.角色的基本概念和特性

角色是一组相关权限的集合,角色可以被授予用户或其他的角色,使用角色使得权限的管理变得容易和好控制。角色拥有下列特性:

角色的授予和回收与系统权限的授予和回收有相同的命令;

角色可以授予任何用户或除了自己以外的角色;

角色必须授权后才是一组权限的集合,角色可以包含系统权限和对象权限;

角色不属于任何用户,角色的描述存储在数据字典中。

使用角色可以减少授权工作,也可以动态地管理权限。假如:与一个角色相关的权限被修改了,则所有被授予了此角色的用户自动获得修改后的权限。

2.角色的管理

(1)建立角色

使用CREATE ROLE命令可以建立角色,角色属于整个数据库,而不属于任何用户。当建立一个角色时,该角色没有相关的权限,系统管理员必须将合适的权限授予给角色。此时,角色才是一组权限的集合。建立角色的语法如下:

CREATE ROLE 角色名[NOT IDENTIFIED|IDENTIFIED{BY 口令}]

其中:NOT IDENTIFIED表示当角色生效时,不必验证口令,是默认值。IDENTIFIED BY 口令表示当角色生效时,必须指定口令。

例8-20 建立一个不带口令的角色HRCLERK。

SQL>CREATE ROLE HRCLERK

(2)角色的权限管理

建立完角色后需要给角色授权,授权后的角色是一组权限的集合。将角色授予给用户,与将系统权限授予给用户有相同的语法。将角色授予给用户的语法如下:

GRANT 角色名1[,角色名2]……

TO{用户名|角色|PUBLIC}[,{用户名|角色|PUBLIC}]……

[WITH ADMIN OPTION]

其中:角色名1、2表示被授予给用户或角色的角色名;用户名|角色表示接受角色的用户名或接受角色的角色名;PUBLIC表示将角色授予给所有用户;WITH ADMIN OPTION表示允许受权者又可以将此角色授予给其他用户。

例8-21 将emp表的SELECT和UPDATE权限授予给角色HRCLERK。

SQL>GRANT SELECT,UPDATE ON emp TO HRCLERK

从用户身上回收角色与从用户身上回收系统权限有相同的语法。从用户身上回收角色的语法如下:

REVOKE 角色1[,角色2]……

FROM{用户|角色|PUBLIC}[,{用户|角色|PUBLIC}]……

其中:角色1、2等表示从用户身上回收的角色名;用户|角色表示被回收系统权限用户名或角色名;PUBLIC表示从所有用户身上回收角色。

例8-22 从所有用户身上回收HRCLERK角色。

SQL>REVOKE HRCLERK FROM PUBLIC;

(3)修改和删除角色

使用ALTER ROLE命令可以修改角色的口令,但不能修改角色名。修改角色的语法如下:

ALTER ROLE 角色名{NOT IDENTIFIED|IDENTIFIED{BY 口令}}

其中:

NOT IDENTIFIED,IDENTIFIED,BY 口令的说明与建立角色时的说明一样。

例8-23 修改HRCLERK角色,设置一个口令。

SQL>ALTER ROLE HRCLERK IDENTIFIED BY COMMISION

使用DROP ROLE命令可以删除角色。即使此角色已经被授予给一个用户或其他角色,Oracle也允许用户删除该角色。删除角色的语法如下:

DROP ROLE 角色名;

当删除一个角色时,Oracle服务器从所有已经被授予了该角色的用户和角色身上回收该角色,并且从数据库字典中删除该角色。

删除角色的用户必须拥有DROP ANY ROLE系统权限,否则不允许删除该角色。

例8-24 删除HRCLERK角色。

SQL>DROP ROLE HRCLERK;

(4)查询角色信息

许多数据字典视图包含了授予用户和角色的权限信息,查询这些视图可以了解当前数据库中已经建立的角色,以及这些角色所拥有的系统权限和对象权限。

3.系统预定义的角色

当建立数据库时,Oracle自动定义了多个角色。这些角色定义在SQL.BSQ脚本文件中,当运行CREATE DATABASE命令时执行该脚本文件。

8.1.2.4 数据库审计

1.审计的类型

为了保证数据库安全性,可以使用审计记录数据库活动的信息,监视数据库有疑问的活动。审计可以分成:数据库审计和应用的审计。

(1)数据库审计

数据库审计监视和记录所选用户的数据库动作。审计信息存储在审计表中,使用审计表可以查看有疑问的活动。例如:数据库管理员可以对数据库中所有连接后所做的成功删除和不成功删除操作进行审计。可以收集正在被更新的表的统计信息,被执行的逻辑读的个数以及高峰时期并发用户的个数。

数据库审计需要通过设置参数AUDITTRIAL及执行审计命令进行审计。

(2)应用的审计

数据库审计不能记录列一级值的变化,假如数据库列的修改需要被跟踪并且每次修改的列的值需要被存储,可以使用应用审计。

值一级或应用审计由开发人员编写触发器或存储过程来实现。

例8-28 下列数据库触发器进行值一级审计。任何时候对雇员表做插入、修改、删除操作,触发器将列的修改前和修改后的值、正在做修改的用户名及时间日期等信息存储到一个用户定义的审计表中。

应用审计必须由开发人员编写触发器或程序来完成。只有数据库审计可以通过设置参数及执行审计命令进行审计。所以在这里重点介绍数据库审计的设置,和审计命令的语法,以及如何查询审计结果。

2.数据库审计的类型

当建立数据库时,Oracle建立SYS.AUD$审计表,用于存储审计记录。Oracle有三种类型的审计:语句审计、权限审计和对象审计。

(1)语句审计:审计所使用的SQL语句。

例8-29 审计由scott用户执行的所有SELECT 语句。

SQL>AUDIT SELECT BY scott;

(2)权限审计:审计所使用的权限。

例8-30 审计所有运用CREATE TRIGGER权限的用户。

SQL>AUDIT CREATE TRIGGER;

(3)对象审计:审计一个特定对象的使用情况。

例8-31 审计在CUSTOMER表上执行的SELECT语句。

SQL>AUDIT SELECT ON CUSTOMER;

3.数据库审计的步骤

执行数据库审计的步骤如下。

(1)首先设置初始化参数文件中的AUDITTRAIL参数,使得数据库的审计生效。该参数的值可以是下列三个值之一。

DB(或TRUE):审计生效,将审计记录插入到数据库审计表(SYS.AUD$)中。

OS:审计生效,将审计记录插入到操作系统审计文件中(假如操作系统允许审计的话),而不是将它们插入到SYS.AUD$审计表中。

NONE(或FALSE):审计失效(这是默认值)。

(2)用AUDIT命令指定需要审计的语句、对象或权限。

(3)用户执行PL/SQL和SQL语句时,服务器决定正在执行的语句是否应该产生一条审计记录。

(4)生成和插入一条审计记录到审计表中。

(5)通过查看审计记录,观察和监视有疑问的活动。

同类推荐
  • 一本书读懂大数据

    一本书读懂大数据

    本书是深入研究互联网思维的经典之作,从互联网思维的定义到互联网思维应用的具体案例表现。作者深入浅出、条分缕析,全面阐述互联网思维的内核与精神,逐一点评当前关于互联网思维的各种观点。本书从最初级的互联网思维应用到高端的粉丝经济,平台建设,自媒体营销的方法都有详细讲解介绍。让读者了解什么是互联网思维的同时还能学会把互联网思维运用到自己的工作学习已经生活中。
  • 学校计算机实用技术

    学校计算机实用技术

    本书由杭州市上城区教育学院编著,他们邀请了众多信息技术教育教学的一线专家,认真细致地筛选了学校计算机应用方面的常见问题,提出了解决问题的具体操作方案,旨在帮助一线教育工作者解决可能面临的种种问题,为广大教师提供便捷服务。
  • 三维动画审美谈

    三维动画审美谈

    数字时代,美的标准充满更多的不确定性。而三维动画以数字图像形式成为这个图时代的代表。三维动画及三维图像不仅仅是由于应用了仿真数字图像技术而带来的虚拟空间,还有更多的是由三维图像技术所引发或引导的被扩展的图像技术,这些技术无不应用在现代视觉设计领域的各个方面,并且,由此引起社会的追热,引起审美观念的改变。这些改变是在进行中的,变化中的,也是在发展中的。对于未知的美,我们做的只是追寻和记录,我们不知道以后的美将会是什么样,尽管我们苦苦追寻,孜孜探讨,同时也在默默审视。我们在追寻中享受美,在探讨中认知美,在审视中体验美……
  • 中国3D打印的未来

    中国3D打印的未来

    自2012年以来,有关3D打印的报道屡见报端,这一新型制造技术引起了全世界的广泛关注。《中国3D打印的未来》作者、中国3D打印技术产业联盟秘书长罗军认为,中国从20世纪90年代初开始涉足3D打印技术,并取得了巨大进展,但与国外同行相比仍存在一定差距。特别是中国3D打印企业普遍存在“小而散”、各自为政的现象,如何发挥整合优势、抱团发展是目前亟需解决的问题。如果能够加强同行合作,抱团发展,形成合力,相信3D打印会成为唯一一项中国有可能赶超世界先进水平的技术。
  • 玩转手机

    玩转手机

    本书主要包括:手机的发展历史、手机知识、手机的选购与巧用、手机与网络、手机短信等内容。
热门推荐
  • TF请再爱我一次

    TF请再爱我一次

    “我爱你,你难道不知道吗?”男孩儿撕碎了心的对眼前的女孩儿说。“知道,我也爱你,但是我们现在还不能回到以前。”“没关系,我会一直等你的。”王俊凯,梁淼萱他们会在一起吗?敬请期待,谢谢!
  • 三国重生之汉献中兴

    三国重生之汉献中兴

    这是一本YY的作品。与其他三国题材的小说不同的是,主角是汉献帝刘协。看多了许多在三国时统一天下的故事,以能臣猛将的名义。可是对于汉献帝刘协这个三国时期最具悲剧色彩的皇帝,我们关注太少。本来“聪敏好学”的他,具备成为一个明君的资本。可命运开了个玩笑,他成了一个傀儡。这次,历史从李傕、郭汜叛乱的兴平二年,公元195年开始。来自21世纪、重生至三国为刘协,是否能改变自己的命运?
  • 蛟龙之再起

    蛟龙之再起

    叶星辰——地球遭人背叛,为了报恩,一个人扛了所有,最后掉入深渊,谁知拜师接受传承,强者重回地球,寻本源,挡异族,再命师界,傀儡界,魔界等,引起层层激浪。他却说“我要站苍穹之上,府世界之巅!”
  • 大妖尊

    大妖尊

    吾有大道一条。上可屠仙,下可斩妖除魔。待吾破开这万丈深渊,重见天日之时,尔等伪仙尽情颤抖吧!欢迎加入洞庭老鸟书友群,群号码:543261921
  • 凤逆九天:龙神的小御妻

    凤逆九天:龙神的小御妻

    穿越异世,云兮本想与师傅二人远离尘世,过着隐居的生活,哪想第一次独自出门就让人给掳了,一朝沦为肉票,从此命途坎坷……====某兮心虚的摆摆手:“我的血可以提升修为?我怎么不知道?你千万别信,那一定是造谣……造谣……”某未来妖王邪魅一笑:“是不是造谣,我们试试就知道。”说完俯身将她压到身下…………某兮双手捂胸满脸羞红的从浴室走出,心中忐忑难安:“刚才是被看到了吧?看得精光啥也不剩了吧?”某尊主面无表情冷漠开口:“你的身材没什么看头。”某兮瞬间石化,碎成渣渣……
  • 村庄的故事

    村庄的故事

    青山,绿水,田野,小河流;菜圃,竹篱,茅舍,看家狗;老人,夕阳,水烟袋。构成一幅乡村纯净的画面,画面里还有一个系冲天小辫的孩子,手拿狗尾巴草,奔跑在乡间小路上,银铃一般的笑声,漾起记忆深处最温馨的回味。
  • 极品国术高手

    极品国术高手

    繁华都市里,江湖被遗忘,国术已没落!这是一个关于极品国术高手崛起的故事!
  • 侦探的荣耀

    侦探的荣耀

    一名年幼的富家少爷为了自己的侦探梦,离开了优越的生活,之后就开始了他的侦探生涯,不久他发现侦探的工作和想象中的并不完全相同,侦探也不是一般的职业,这之中发生了一系列惊心动魄的故事
  • 水果摊贩的后宫人生

    水果摊贩的后宫人生

    他十八岁那年被迫退学,开了水果摊。在一次机缘巧合之下,了解到自己竟然拥有世间罕见的体质,从此开启了他的后宫之路。
  • 少年路终是痛

    少年路终是痛

    四个少年,从不同的地方踏入到了修真界中。他们一起吃饭,一起修炼,一起下山历练,一起面对挑战。到最后确是因为其中一个少年的改变而分道扬镳。他们各自走上了四条不同的道路,但是目的都是出奇的一致。得到那传说中无可匹敌的传承,成为天地主宰。只不过一个是为了承诺,一个是为了守护,一个是为了成为主宰,而另一个则是为了毁灭这畸形的修真世界。