登陆注册
31848700000018

第18章 数据库的保护(2)

(1)修改用户默认表空间和临时表空间

修改用户的默认表空间只影响将来建立的对象,以前建立的对象仍然存放在原来的表空间上,将来建立的对象放到新的默认表空间。

例8-5 修改JOHN用户的默认表空间和临时表空间。

SQL>ALTER USER JOHN

TEMPORARY TABLESPACE TEMP

DEFAULT TABLESPACE USERSDATA

(2)控制用户账号的锁定及重置口令

在下列情况下使用ALTER USER命令修改口令和账号锁定或解锁是很有用的:

当一个用户忘记口令时需要重置口令,或人工地将一个口令设置为到期;

将被系统锁定的用户账号解锁,或显式地锁定一个用户账号。

假如用户已经登录到Oracle数据库,此时修改口令、设口令到期及锁定口令都不会影响当前的会话,这些修改只对该用户后续的会话有效。

例8-6 将JOHN用户的口令修改并且将其口令设置为到期。

SQL>ALTER USER JOHN

IDENTIFIED BY HISGRANDPA

PASSWORD EXPIRE

假如口令到期,在登录SQL*Plus时将提示用户输入一个新口令。JOHN用户必须在下次登录时修改口令。

3.删除用户

使用DROP USER命令可以从数据库中删除一个用户。假如用户拥有对象,必须指定CASCADE关键字才能删除用户,否则返回一个错误。假如指定CASCADE关键字,Oracle先删除该用户所拥有的所有对象,然后删除该用户。

删除用户的语法如下:

DROP USER 用户名[CASCADE];

例8-7 删除JOHN用户及该用户的所有对象。

SQL>DROP USER JOHN CASCADE

注意:一个当前连接到Oracle服务器的用户是不能被删除的。

4.查询用户信息

用户的信息可以从数据字典视图DBAUSERS和USERUSERS中获得。USERUSERS只显示一行当前用户的信息,DBAUSERS显示所有用户的信息。普通用户只能查询USERUSERS数据字典,只有拥有DBA权限的用户才能查询DBAUSERS数据字典。从这两个视图中可以获得用户账号状态、口令到期的日期、账号锁定的日期(假如账号被锁定)、加密的口令、默认表空间和临时表空间、用户的建立日期等信息。

例8-8 JOHN用户在登录到数据库后,执行下列命令查询自己账号的信息。

SQL>SELECT USERNAME,DEFAULTTABLESPACE,TEMPORARYTABLESPACE,

ACCOUNTSTATUS,EXPIRYDATE

FROM USERUSERS;

8.1.2.2 权限的管理

数据库中的权限可以控制对数据的访问,以及限制用户可以执行的操作。通过授予用户合适的权限,权限决定了一个用户所能访问的数据。

Oracle有两种类型的权限:系统权限和对象权限。

允许用户在数据库上执行特定操作所需要的权限称为系统权限,这些操作包括建立、删除和修改表、视图、存储过程、触发器等。系统权限没有指定任何对象。有些系统权限的功能很强大,只应该授予给可信任的用户。

允许用户访问一个特定对象并对特定对象执行特定操作所需要的权限称为对象权限。对象权限指定操作的对象可以是表、视图、存储过程函数、包等对象。对象权限可以是针对数据的读、修改、删除、增加等权限,也可以是针对程序的执行权限,或者修改对象结构的权限等。

PUBLIC是一个数据库中定义的用户组,它既不是一个数据库用户,也不是一个角色。数据库中的每一个用户都属于这个组。假如将权限授予给PUBLIC,则数据库中所有用户都拥有此权限。

1.系统权限的管理

(1)系统权限的分类

系统权限可以划分成下列三类。

允许在系统范围内操作的权限。如:CREATE SESSION、CREATE TABLESPACE等与用户无关的权限。

允许在用户自己的账号内管理对象的权限。如:CREATE TABLE等建立、修改、删除指定对象的权限。

允许在任何用户账号内管理对象的权限。如:CREATE ANY TABLE等带ANY的权限。

例如:SELECT ANY TABLE权限给了用户查询数据库中所有用户的表或视图的权力。CREATE ANY TABLE权限允许用户在任何用户账号下建表。

注意:CREATE TABLE、CREATE PROCEDURE权限包含ALTER和DROP这些对象的权限;CREATE TABLE权限包含CREATE INDEX权限,所以没有单独的CREATE INDEX权限;为了TRUNCATE一张表,必须拥有DROP ANY TABLE权限;为了连接到数据库必须拥有CREATE SESSION权限。

(2)系统权限的授予

使用GRANT命令可以将系统权限授予给一个用户、角色或PUBLIC。WITH ADMIN OPTION从句授予了受权者将此权限再授予给另一个用户、角色或PUBLIC的权力。授予系统权限的语法如下:

GRANT{系统权限|角色}[,{系统权限|角色}]……

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

[WITH ADMIN OPTION]

其中:

PUBLIC表示将系统权限授予给数据库下的所有用户;WITH ADMIN OPTION表示允许得到权限的用户进一步将这些权限或角色授予给其他的用户或角色。

注意:给角色授权时不能带WITH ADMIN OPTION从句。

例8-9 JOHN用户希望在scott模式下建立一张表,他需要拥有CREATE ANY TABLE权限。这个权限不仅允许JOHN在scott模式下建立一张表,而且允许在任何模式下建立一张表。

SQL>GRANT CREATE ANY TABLE TO JOHN;

例8-10 希望JOHN用户将建表权限再授予给别人,在给JOHN授权时必须带WITH ADMIN OPTION从句。

SQL>GRANT CREATE ANY TABLE TO JOHN WITH ADMIN OPTION

(3)系统权限的回收

使用REVOKE命令可以从用户或角色上回收系统权限。回收系统权限的语法如下:

REVOKE{系统权限|角色}[,{系统权限|角色}]……

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

注意:假如用户A被授予带WITH ADMIN OPTION从句的系统权限,并且将此系统权限授予用户B,当用户A的权限被回收时,用户B的权限仍然保留。

例8-11 从scott用户身上回收建表和建立会话的权限。

SQL>REVOKE CREATE TABLE,CREATE SESSION FROM scott

不管在权限授予时是否带WITH ADMIN OPTION从句,一个系统权限回收时没有级联影响。

DBA将CREATE TABLE系统权限授予给USER1,授权时带WITH ADMIN OPTION从句。

USER1建立一张表。

USER1将CREATE TABLE系统权限授予给scott用户。

scott用户建立一张表。

数据库管理员DBA从USER1身上回收CREATE TABLE系统权限。

结果为:USER1的表仍然存在,但USER1不能建立任何新表;scott用户仍然拥有表和CREATE TABLE系统权限。

(4)SYSDBA和SYSOPER权限

在第4章中已经提到了系统权限SYSDBA和SYSOPER。如果用户以SYSDBA权限连接到数据库(如:CONNECT/AS SYSDBA),就授予用户无限的权限,允许用户在数据库中执行任何操作,或者对数据库中的对象执行任何操作。

(5)查询系统权限信息

查询数据字典视图DBASYSPRIVS可显示数据库中所有用户或角色所拥有的系统权限,以及授予权限时是否带有WITH ADMIN OPTION从句。查询USERSYSPRIVS视图可显示当前用户所拥有的系统权限,以及授予权限时是否带有WITH ADMIN OPTION从句。

例8-12 查询所有用户或角色所拥有的系统权限。

SQL>SELECT*FROM DBASYSPRIVS

查询数据字典视图V$PWFILEUSERS可以了解所有被授予SYSDBA和SYSOPER系统权限的用户信息。SYSDBA列的值为TRUE时表示用户被授予SYSDBA系统权限,SYSOPER列的值为TRUE时表示用户被授予SYSOPER系统权限。

例8-13 查询拥有SYSDBA和SYSOPER系统权限的用户信息。

SQL>SELECT*FROM V$PWFILEUSERS

查询结果如下:

USERNAME SYSDBA SYSOPER

——

SYS TRUE TRUE

2.对象权限的管理

(1)对象权限的分类

对象权限是对一个特定对象进行操作所需要的权限。一个对象的拥有者拥有对对象的所有权限。对象拥有者可以将对象上的权限授予给数据库的其他用户。对每一类对象可以授予的对象权限可分为9类。对象不同,在此对象上可以操作的权限也不同。其中打“√”符号的表示该类对象上有这种操作权限,空表示该类对象上没有这种操作权限。

(2)对象权限的授予

授予对象权限的语法如下:

GRANT{对象权限[(列名1[,列名2……])]

[,对象权限[(列名1[,列名2……])]]……|ALL[PRIVILEGES]}

ON 对象名

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

[WITH GRANT OPTION]

其中:

对象权限指需要被授予的对象权限。

列名1、2用于指定表或视图中的列名(只有在授予INSERT,REFERENCES,UPDATE权限时才能指定列名)。

ALL用于授予对象上的所有权限,并且带WITH GRANT OPTION从句。

ON 对象名用于指定被操作的对象名。

WITH GRANT OPTION用于允许受权者将对象权限授予其他用户或角色。给角色授权时不能带WITH GRANT OPTION从句。

例8-14 SYS用户将DBMSPIPE包上的执行权限授予给数据库中所有用户。

SQL>GRANT EXECUTE ON DBMSPIPE TO PUBLIC;

例8-15 USER1用户将emp表上ENAME、SAL列上的更新权限授予给scott用户,并且允许scott用户再将此更新权限授予给其他用户或角色。

SQL>GRANT UPDATE(ENAME,SAL)ON emp TO scott WITH GRANT OPTION;

注意:假如用户拥有一个对象,自动地获得了该对象的所有权限。对象拥有者可以将自己对象的操作权授予给别人。

同类推荐
  • 虚拟现实:下一个产业浪潮之巅(第2版)

    虚拟现实:下一个产业浪潮之巅(第2版)

    毫无疑问,虚拟现实时代已经来临,VR不仅将彻底改变人们交互的方式。而且会是互联网的下一个风口,VR会创造新时代,即由人的体验构成的互联网时代。目前,全球范围众多的科技、影视等商业巨头纷纷砸巨资押注VR产业。例如,扎克伯格越来越坚定地认为,VR将会成为下一代计算机平台;任正非在内部讲话中也提到,华为要保持理性地进行VR投入与研究,要在这个充满诱惑的领域里分得一杯羹,谁最后倒下,谁便赢得天下。本书是作者基于VR行业多年的研究以及创立VR公司的经验写成,目的是让读者快速、全面地了解VR产业最新、最重要的信息,如生态链、技术瓶颈、发展前景以及人才结构等,是一部不可多得的VR行业入门读物。
  • 云计算、网络安全和网络盗窃:网络世界防盗初学指南

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

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

    网络知识

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

    数据库原理及Oracle应用

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

    天行

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

    听风讲你来过

    时过境迁,事隔经年,我听风讲,你来过,我爱过。顾清一当然清楚他不喜欢别人碰他,大概一切生物他都不能容忍,那她究竟是怎么和他在一起的,这真是个谜!“顾清一,为什么嫁给我?”“因为我爱你,泽宇。”她说谎的时候,唇角微微上扬,一双漂亮的眼睛明亮得不可思议,让人差点信了她的鬼话,果然天生就会哄人,宁泽宇不愿再去看她,极其嫌恶地移开目光,这女人嘴里到底有没有一句真话?“顾清一,我找了你三年。”宁泽宇看着面前温婉的人,哪还有三年前张牙舞爪的模样?“宁总,我还有事。”她极其客套地称他为宁总,哪怕是说一句好久不见也好啊。顾清一看着那人清贵的背影,那些往事又一点点浮现出来,恨不得要了她的命,她很清楚,她和那人这辈子都不会有什么交集了,可那人似乎不比从前了。“顾清一,我再也不会留你一个人在痛苦中。我犯的错,我用一生来偿还。”
  • 迦陵录

    迦陵录

    迦陵鸟又名迦陵频伽鸟,曾是唐宋净土变中常见之瑞鸟,迄今却鲜为人知。宋杨万里诗云:"忽有仙禽发奇响,频伽来自普陀山。"元朝末年,一个动乱的年代,英雄佳人;花花相对;叶叶相当;迥然有序......少年的柳洛秋随母亲赵慕沄返回了原籍。他在"永而盈之,莫之能守,清灵空虚,星斗遗咎…"的剑法口诀中探悟着他人生的道路。杨黛儿道:“你若至死不解,我便终生美丽。但若你懂了呢?不,你一定会懂的,到那一天就是残花陨落的日子。”林汐瑶心忖:‘星星们入睡了么’这使她有些惶恐不安,这会子她又感觉自个的身体脱离了躯体,在空中来回飘荡。像一颗没有轨迹的流星,惟有星光映射的清辉极韵抵抗着来自心涧的极度深寒之感。过了许久,渐渐的脸上露出一丝笑容...
  • 天行

    天行

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

    凤舞傲翎:腹黑妖孽盛宠妃

    逆天萌宠,珍贵丹药,元素召唤,皆不在话下!一朝魂穿异世,终是再起风云!而当妖孽尊贵的他现身,刹那间,是一见钟情,抑或是命中注定?终于一场场追逐中,他欺身而上。“不如嫁我,如何?”“那有什么好处?”看似漫不经心,眼底却染上了一抹笑意和风情。“美男在怀,可随意调戏。”他邪魅一笑,竟如万千芳华竞绽。倾了谁的城,又惑了谁的心?这人世间,恐怕唯有你,能与我携手并肩,笑看万千风景。烟雨画桥谁赠伞?隐月闲云亦倾心。(宠文)(--其实我第一次见到你,就有种特别的感觉。)
  • 魔鬼恋人之一个好妹妹

    魔鬼恋人之一个好妹妹

    一场亲情的龙卷风,刮在了十个不同性格花美男上!一个妹妹!一个饵食!究竟何去何从?当年的他到底干了些1什么?饵食的爸爸究竟是谁?妹妹到底是吸血鬼还?是人类?
  • 高冷校草来追妻:甜心逃不掉

    高冷校草来追妻:甜心逃不掉

    要订婚的对象竟然是开学第一天碰到的恶魔,不是吧,我们竟然还要同居......一个月后‘’辰,我要喝水‘’‘’来老婆,你的水‘’辰,我饿了‘’‘’好你忍一下,我这就去给你做饭‘’
  • 一赌成情:傲娇校草怀里收

    一赌成情:傲娇校草怀里收

    他是所有老师眼中的好学生,他是所有家长眼中的乖孩子,他也是所有同学眼中的优秀会长。然而,一场突如其来的大病吞噬着他十八岁的生命。面对疾病与爱恋,他选择让自己放纵一次。他说:“叶白,敢和我谈一场生死恋吗?”
  • 来世与君共华发

    来世与君共华发

    初见,他是当朝左相,她是被弃公主。“臣奉皇上之命来接公主回宫。”他笑道,笑容如冬日的阳光,暖暖的。“你说回去就回去那岂不是很没面子?”在她看来他的笑容有点刺眼。。。。“为什么每次都能被你看到我最落魄的样子。”她苦笑。“人生不如意之事十有八九,公主又何必为一些不相关的人不相关的事而烦恼?”。。。“是不是我死了你们就能放了他。”她冷笑。“是。”“那好。”语毕,她拔出头上的玉簪刺入胸口“现在,你们可以放了他吧。”三千青丝随风而动,道不尽的凄美,诉不尽的哀凉。。。。“答应你的百里红装我一直不曾忘,醒来看看可好?“风飞翱翔兮四海求凰,无奈佳人兮不在东墙。
  • 千年平安京的百人一首

    千年平安京的百人一首

    平安朝是以日本天皇迁都京都开始持续了千年的一个朝代期间有名臣武将贤明君主内政外交勾心斗角自然也有变法中兴文化璀璨《百人一首》主要记录了平安时期日本的文学和歌是以一百个人每人一首的形式精选了百人的作品集本书以百人一首的作者为故事线索展开介绍了每首和歌所诞生的背景历史事件历史故事当然这些故事有很大程度是基于我的演义