登陆注册
31848700000017

第17章 数据库的保护(1)

8.1 数据库的安全性管理

数据库的保护就是要排除和防止各种对数据库的干扰和破坏,确保数据安全、可靠及在数据库遭到破坏后尽快恢复正常。对数据库的保护主要通过安全性控制、完整性控制、并发控制和数据库恢复技术四个方面实现的。本章首先介绍实现这四种保护措施的原理和方法,然后介绍Oracle系统是如何实现这四种保护措施的。

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改和破坏。

安全性问题是所有计算机系统都有的问题,只是在数据库系统中由于大量数据集中存放,而且是多用户共享,使安全性问题更为突出。因此,系统安全保护措施是否有效是数据库系统主要的性能指标之一。

8.1.1 安全性管理的方法和原理

在计算机系统中,一般安全措施是分级设置的。

在用户进入计算机系统时,首先由操作系统一级实施保护,必须对进入操作系统的操作系统用户进行身份鉴定,只有合法的操作系统用户才准许进入操作系统。对进入操作系统的用户,希望操作数据库数据时,DBMS还要进行数据库用户的身份鉴定,只有合法的数据库用户才准许进入数据库系统。然后还需要对数据库用户进行存取权限的控制,检查数据库用户是否拥有存取权限,只允许数据库用户执行权限范围内的合法操作。最后数据存储到数据库中还可以采用加密存储。

安全性控制的一般方法有:用户标识和鉴别、存取权限控制、审计、数据加密和视图等几种。

8.1.1.1 用户标识和鉴别

用户标识和鉴别是系统提供的最外层安全保护措施。其方法是由系统提供让用户标识自己的名字或身份的方法。每次用户要进入系统时,系统对用户身份进行核实,经过鉴定后才提供操作系统和数据库的使用权。

(1)提供用户名和口令

常用的用户标识和鉴别方法是使用用户名和口令。为保密起见,用户在终端上输入的口令不显示在屏幕上。当用户登录操作系统时,系统要求用户提供操作系统的用户名和口令,若正确,则可进入操作系统;若不正确,则不能进入操作系统。当进入操作系统后,使用数据库的工具登录数据库时,数据库系统要求用户提供数据库的用户名和口令,若正确,则登录数据库;若不正确,则拒绝登录数据库。

以上的方法简单易行,但用户名和口令容易被人窃取,因此还可以用更复杂的方法。

(2)系统提供一个随机数

系统提供了一个随机数,用户根据预先约定好的某一过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴定用户身份。

用户标识和鉴别可以重复多次。

8.1.1.2 存取权限控制

在数据库系统中,安全最重要的一点是确保只授权给有资格的用户访问数据库的权限,令所有未被授权的用户无法接近数据,这主要通过数据库系统的存取控制机制实现的。

存取控制机制主要包括两部分:定义用户权限和检查用户权限。

(1)定义用户权限

用户权限是指不同的用户对不同的数据对象允许执行的操作权限。定义用户权限时必须指定两个内容:一是要存取的数据对象,二是对此对象进行的操作,保证用户只能存取他有权存取的数据。在数据库系统中对存取权限的定义称为“授权”(Authorization),这些授权的定义经过编译后存放在数据库的数据字典中,被称作安全规则。

关系数据库系统中,DBA可以把建立和修改基本表的权限授予用户,用户可利用这种权限来建立和修改基本表、索引、视图等对象。数据对象的创建者自动获得对该数据对象的所有操作权限。

SQL除了数据定义和数据操作功能以外,还提供了数据控制功能,授权和回收就是通过其提供的GRANT和REVOKE语句来实现的。

例8-1 student表的创建者将该表上的查询权限和插入权限授予给用户user1,并允许user1用户又将student表的查询和插入权限授予别人。

SQL>GRANT select,insert

ON student

TO user1

WITH GRANT OPTION

例8-2 student表的创建者将该表上的查询权限和插入权限从用户user1身上回收。

SQL>REVOKE select,insert

ON student

FROM user1

(2)合法权限检查

每当用户发出存取数据库的操作请求时,DBMS查询数据字典,根据事先定义好的存取权限进行合法权限检查。若用户的操作超过了定义的权限,系统拒绝执行此操作。

用户的权限定义和合法权限检查机制一起组成了DBMS的安全子系统。

8.1.1.3 审计

任何系统的安全性措施不可能是完美无缺的,企图盗窃、破坏数据者总是想方设法逃避控制。所以,对敏感的数据、重要的操作,可以通过审计来进行跟踪检查。

审计功能把用户对数据库的所有操作自动记录下来放入审计日志(audit log)中。DBA利用审计日志,就能重现导致数据库现有状况的一系列事件,以找出非法存取数据的人、时间和内容。

审计通常是很费时间和空间的,所以DBMS往往将其作为可选特征,允许DBA根据应用对安全性的要求,灵活地打开或关闭审计功能。审计功能一般用于安全性要求较高的部门。

8.1.1.4 数据加密

另一种安全性方法是使用加密。把数据用密码形式存储在磁盘上,这样企图通过不正常途径,例如不通过DBMS,而是通过自己编写的程序来存取数据者,只能看到一些无法辨认的二进制数。用户要检索数据时,首先要提供密码钥匙,由系统进行译码。

不少数据库产品均提供了这种数据加密的功能。但数据加密和解密操作比较费时,又占大量的系统资源,所以一般DBMS将数据加密功能作为一个可选特征,可根据用户的要求对数据实行加密或不加密存储。

8.1.1.5 视图机制

可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内。可以通过视图将要保密的数据对无权存取这些数据的用户隐藏起来,这样自动地提供了对数据的安全保护。

例8-3 有基本表student、course和sc,其中student表包含了学生的基本信息,包括:学号、姓名、性别、年龄等信息。course表包含了课程的基本信息,包括:课程号、课程名称、学分、任课教师的名字等信息。sc表包含了每个同学的选课记录,包括:学号、课程号、成绩等信息。在这三张表的基础上建立一个视图sgrade,该视图包含学生的姓名、课程名及该课程的成绩。

SQL>CREATE VIEW sgrade

AS SELECT sname,name,grade

FROM student s,course c,sc

WHERE s.snosc.sno and c.cnosc.cno;

将SGRADE视图的查询权限授予user1用户。

SQL>GRANT select

ON sgrade

TO user1;

此时user1用户可以查询sgrade视图,即可以查询三张表中的学生姓名、课程名称、成绩数据。但除了这三个数据外,其他信息user1都无权查询,也看不到。

SELECT*FROM sgrade;

从上述例子可以看到,通过视图隐藏用户无权访问的数据加强安全性,隐藏表之间的联结操作简化用户操作。

8.1.2 Oracle系统的安全措施

Oracle系统的安全措施就是上述保证系统安全性的几种方法的具体体现。但是Oracle系统中的用户可以进行账号锁定和口令过期等设置。权限又分系统权限和对象权限,分别有不同的管理方法,另外引入角色简化权限的管理。审计又可以分为数据库审计和应用审计等。

8.1.2.1 用户的管理

对Oracle进行访问的用户必须是Oracle中建立的一个有效的用户。当安装和建立Oracle数据库时,系统自动建立SYS和SYSTEM用户,其中SYS用户拥有数据字典。在数据库中一个用户可以拥有的对象有表、视图、索引、约束条件、序列生成器、同义词、存储过程、函数、包、数据库触发器、数据库链路、快照等。

1.建立新用户

使用CREATE USER命令可以建立用户,建立后在数据字典中记录了该用户的信息。在建立用户时应该为其指定一个口令,该口令加密后存储在数据库数据字典中。当用户与数据库建立连接时,Oracle验证用户提供的口令与存储在数据字典中的口令是否一致。

建立用户的语法如下:

CREATE USER 用户名

IDENTIFIED BY 口令

[DEFAULT TABLESPACE 表空间名]

[TEMPORARY TABLESPACE 表空间名]

[PASSWORD EXPIRE]

[ACCOUNT{LOCK|UNLOCK}]

其中:只有口令必须指定,其他几项都是可选的。

BY口令用于指定该用户存储在数据字典中的口令,口令不区分大小写。

DEFAULT|TEMPORARY TABLESPACE用于为用户指定默认的表空间和临时表空间。假如没有指定默认表空间,则将SYSTEM表空间作为该用户的默认表空间。假如没有指定临时表空间,则将TEMP表空间作为该用户的临时表空间。

PASSWORD EXPIRE表示刚建立用户的口令已到期。当用户使用SQL*Plus第一次登录到数据库时,强制用户重置口令。

ACCOUNT LOCK|UNLOCK用于显式地锁住用户账号,或不锁住用户账号。当一个账号被锁定并且用户试图连接到数据库时,会显示错误信息。没有指定ACCOUNT从句时,默认是不锁住用户账号。

例8-4 建立一个JOHN用户。该用户的口令没有到期,账号也没有被锁住。

SQL>CREATE USER JOHN

IDENTIFIED BY TIGER

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

当建立用户后,必须给用户授权,用户才能连接到数据库,并对数据库中的对象进行操作。只有拥有CREATE SESSION权限的用户才能连接到数据库。可用下列语句给JOHN用户授权。关于给用户授予和回收权限的语法在后面讨论。

SQL>GRANT CREATE SESSION TO JOHN

2.修改用户

建立用户时指定的所有特性都可以使用ALTER USER命令加以修改。使用此命令可以修改用户的默认表空间、临时表空间、修改用户的口令和口令期限、可以锁住或解锁用户账号等。修改用户的语法如下:

ALTER USER 用户名

IDENTIFIED BY 口令

[DEFAULT TABLESPACE 表空间名]

[TEMPORARY TABLESPACE 表空间名]

[PASSWORD EXPIRE]

[ACCOUNT{LOCK|UNLOCK}]

注意:该命令中任何没有修改的选项仍然保留原来的值。

同类推荐
  • 数据库原理及Oracle应用

    数据库原理及Oracle应用

    进入21世纪,随着国家信息化步伐的加快及各行业信息化进程的不断加速,社会对专业(非计算机专业)人才的信息技术能力要求越来越高。为了适应社会对专业人才的要求,全国各高校在重视专业知识培养的同时也非常注重计算机应用能力的训练,即信息技术能力的培养。计算机应用水平已成为衡量高校毕业生综合素质的突出标志之一。
  • 信息革命

    信息革命

    随着经济社会的快速发展,电子产品走进了千家万户,与电子产品相伴的信息技术也已渗透到人们生产生活的方方面面。加强信息技术普及,已成为业内人士的共识。鉴于此,在有关部门的大力支持下,经过认真筹划,我们编辑出版了《信息革命》一书。该书以时间为经,在记述信息技术发展历程的同时,深入浅出地介绍了信息技术的相关知识,对人们更好地利用现代信息技术服务经济社会建设和个人生产生活必将产生积极作用。本书由李大东主编。
  • 无人机:知道这些就够了

    无人机:知道这些就够了

    不久的将来无人机将像智能手机一样司空见惯,而你对无人机的了解有多少?你知道无人机有哪些用途吗?无人机对你和你的家庭又会产生什么样的影响呢?知道这些就够了。
  • 云计算、网络安全和网络盗窃:网络世界防盗初学指南

    云计算、网络安全和网络盗窃:网络世界防盗初学指南

    网络犯罪层出不穷,保护自己的安全,防止受到攻击,似乎是一个艰巨的任务。幸运的是,有一些人人都能采取的措施,可以降低成为网络袭击对象的风险。保证基于云计算程序的安全和降低被袭击的风险,关键在于理解云安全的共同责任。云提供商需要全力确保实施尽可能严格的安全策略。
  • 网络知识

    网络知识

    一般地说,将分散的多台计算机、终端和外部设备用通信线路互联起来,彼此间实现互相通信,并且计算机的硬件、软件和数据资源大家都可以共同使用,实现资源共享的整个系统就是计算机网络。
热门推荐
  • 金熊奇侠传

    金熊奇侠传

    《金熊奇侠传》内容大致分为三大块:其一,讲述平凡少年陆羽,无师自通《雪天神功》,得上古灵兽金熊相助,无名老人传功,突破重重难关,击溃九天欲魔的故事。其中陆羽身世背景复杂,在一路奇遇的过程中抽丝剥茧,并与自己的孪生哥哥拔剑相向,最终杀死同袍。与此同时,陆羽身边女人不断,从狐女白儿、薛琼、柳艳到萍儿、四姑娘、王晓天、贾文静等等,陆羽虽然对待他们个个真诚,却不能阻止爱情的离去。其二,陆羽通过“御鬼八诀”穿越西方天使世界。其三,陆羽通过“御鬼八诀”穿越北欧奥丁神世界。
  • 小娱记大明星:午后薰衣茶

    小娱记大明星:午后薰衣茶

    冷酷帅气的偶像巨星夏夜薰和新近崛起的天才娱记“火焰小魔女”小园,他们本属于两个势同水火的群体,却因为一次“偶然”,成为亲密的好友。小园的可爱融化了少年冰冷的外壳,薰的温柔逐渐动摇了她的心。是无情无义地曝光超级巨星的独家资料,还是维持那份令人心动莫名的友谊,残酷的现实只能让小园选择其一。当红偶像夏夜薰的绝密私人档案首次曝光,曝光资料的居然是他的好朋友——天才娱记“火焰小魔女”小园!生气的薰毅然决定和小园断绝朋友关系,小园为如何挽回二人的友谊苦恼不已。这时,妄图东山再起的黑帮组织海兴帮竟将魔爪伸向了薰!小园在保护薰的瞬间,明白了自己的心意。
  • 穿越兽世:兽夫,要低调

    穿越兽世:兽夫,要低调

    沐小芊身为一个在弱肉强食的末世中,生存下来的一个幸存者,居然在不知名的情况下,穿越到了兽世,这对沐小芊来说简直就是晴天霹雳,沐小芊看着这些从动物变成人的兽人,简直……,幸好沐小芊从十六岁到二十一岁的这几年里,经历了末世中的玄幻和残酷,已经有了非常强大的内心。要是她没有经历过末世,一定会以为,这些从动物变成人的兽人会是妖怪,然后把他们……。
  • 女配的无名使

    女配的无名使

    叶岑汐死了,来到了唯一看过的小说里,有点儿怕女主怎么办,虽然她对死没意见,但有些憋屈的感觉!她决定了,她要力争与女主无瓜葛,好好享受大好时光!
  • 亡灵索魂:有鬼!

    亡灵索魂:有鬼!

    皓月高挂,皎洁的月光穿过学校的走廊照在楼梯拐角的正衣镜上,月光下镜子诡异的闪烁着朦胧的柔光……明明是酷夏季节,怎么感觉犹如被光溜溜的扔到了北极一样,那寒刺骨髓的冷几乎要把炙热的鲜血凝固成冰……办公楼不高,真的不高。从五层高的办公楼上摔下来,怎么会把人摔的如此支离破碎……俞筱眼看着身边的好友一个接一个诡异离奇的惨死,然而凶手的真面目似乎永远都不能被大家所接受,那明明就是真相,为什么没有人相信?噩梦仍然在继续,死亡也仍然在继续,下一个在极度痛苦中悲惨死去的人又会是谁?促使这一切发生的真相又到底是怎样?伴随着谜团一个个的解开,俞筱惊讶的发现,这离奇可怕的一切开始竟然源于……怎么会这样?
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 嗜血之旅

    嗜血之旅

    刚满十八岁的妙龄少女,在生日宴上,突然得知自己父母在来派对的路上发生了车祸,而管家又接来电话告诉她,说父亲的公司涉及一起违法交易,而被迫告知关闭公司…面对突如其来的种种事件,这位少女心灰意冷,割腕自杀……可命运没那么容易放过她,当她醒来后,发现了自己身体的异样,同时她也有了新的身份,是一位著名商人乔纳森艾伯特的女儿安娜。安娜以为自己应该是死了而重新投了一次胎而已,只是忘了喝孟婆的汤了…可事实并没有那么简单…后来父亲因年迈而过世,安娜自然继承了父亲的家业,但因为安娜的年龄,父亲早已把安娜托付给了远在中国的兄弟,于是,在父亲死后没几天,家里来了不速之客,是父亲的兄弟,安如山,目前安氏集团的董事长…安娜被带到中国后安然的生活着…她渐渐在中国安家,生活,学习…一切都很正常,直到有一天…她突然发现,原来自己是吸血鬼…
  • 绝命孤狼:2016

    绝命孤狼:2016

    儿时同伴残忍地伤害了小狼王与狼王亲信肖啸,突如其来的一卷图腾竟成了挽救整个王国的致胜法宝?
  • 谢谢你,拿走我的心

    谢谢你,拿走我的心

    我曾风尘仆仆的追随着,我曾从日出等到日落;那一句“走,跟我回家”至今仍让我热泪盈眶。当我回过头,站在一个温暖花开的季节,请原谅我,最想的,还是你能看到我阳光里温暖的回眸。愿无岁月可回首,且以情深共白头,一个与军人的故事。
  • 镰皇

    镰皇

    天穹之大!可有只手遮天之人?行善者为正?行恶者为邪?正道、邪道孰正?孰邪?手执双镰,叱咤风云这是一个充满颠覆的逆世界!一个魔教皇子的逆世界!……不自量,必难忘千里孤魂何处话凄凉