对象、事务和数据控制.ppt

上传人:小飞机 文档编号:6274292 上传时间:2023-10-12 格式:PPT 页数:72 大小:860.50KB
返回 下载 相关 举报
对象、事务和数据控制.ppt_第1页
第1页 / 共72页
对象、事务和数据控制.ppt_第2页
第2页 / 共72页
对象、事务和数据控制.ppt_第3页
第3页 / 共72页
对象、事务和数据控制.ppt_第4页
第4页 / 共72页
对象、事务和数据控制.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《对象、事务和数据控制.ppt》由会员分享,可在线阅读,更多相关《对象、事务和数据控制.ppt(72页珍藏版)》请在三一办公上搜索。

1、,福建工程学院,第9章 高级特性:对象、事务和数据控制,本章要点,学习某些Oracle对象以及它们的使用;使用语法来创建、使用、修改和删除视图、序列、同义词和索引;讨论事务控制的优点;介绍事务控制中所使用的用户、角色和权限;,数据库对象,描述数据存储的基本单元,由行和列组成逻辑上来自一个或多个表的数据的集合,是一虚表产生主关键字值用于提高某些查询的性能为简化和便于记忆,给对象起的别名或替代名称,对象表视图序列索引同义词,什么是视图?,EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO-7839 KING PRESIDENT 17-NOV-81 5000 1

2、0 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7900 JAMES CLERK 7698 03-DEC-8

3、1 950 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 7788 SCOTT ANALYST 7566 09-DEC-82 3000 20 7876 ADAMS CLERK 7788 12-JAN-83 1100 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10,EMP 表,通过创建视图您可以提取出数据的逻辑上的集合或组合。视图是基于一个或多个表

4、或视图的逻辑表视图本身并不包含数据但是却像一个窗口通过它可以查询或修改表中的数据视图所基于的表我们把它称为基表视图是存储在数据字典中的一条SELECT语句。,为什么使用视图,限制对数据库的访问容易实现复杂的查询维护数据的独立性(隔离基表结构的改变)对于相同的数据可以产生不同的视图,简单视图和复杂视图,特征简单视图复杂视图基表数量一个一个或多个包含分组函数没有可能有包含分组的数据没有可能有通过视图实现DML操作可以不一定,创建视图,在CREATE VIEW语句中嵌入一子查询OR REPLACE如果所创建的视图已经存在,Oracle会自动重建该试图FORCE不管基表是否存在,Oracle都会创建该

5、视图NOFORCE只有基表都存在,Oracle才会创建该视图view视图的名称alias为视图所产生的列定义别名,别名的数量必须和视图所产生列的数量相等subquery一条完整的SELECT语句,在该语句中同样可以定义别名,可以使用order by 子名WITH CHECK OPTION所插入或修改的数据行必须满足视图所定义的约束constraintCHECK OPTION中的约束名WITH READ ONLY确保在该视图上不能进行任何DML操作,CREATE OR REPLACE FORCE|NOFORCE VIEW view(alias,alias.)AS subqueryWITH CHE

6、CK OPTION CONSTRAINT constraintnameWITH READ ONLY,创建视图,创建视图 EMPVU10,该视图仅包含10部门雇员的细节信息。,用SQL*Plus DESCRIBE显示视图的结构。,SQL DESCRIBE empvu10,SQL CREATE VIEW empvu10 2 AS SELECTempno,ename,job 3 FROMemp 4 WHEREdeptno=10;View created.,创建视图指导,定义视图的查询可以采用复杂的SELECT语法,可包含连接、分组、子查询。定义视图的查询中可以使用ORDER BY子句(低版本不行)。

7、如果您没有为视图中使用CHECK OPTION创建的约束命名,系统会自动为约束命名,形式为SYS_Cn。使用OR REPLACE选项可以不用删除已经存在的视图便可更改试图的定义并重建它,或者重新授予对象权利。,创建只读视图,创建emp表的经理视图。,执行结果:ERROR 位于第 1 行:ORA-01752:不能从没有一个键值保存表的视图中删除,SQL DELETE FROM managers;,SQL CREATE OR REPLACE VIEW managers 2 AS SELECT*3 FROM emp WHERE job=MANAGER 4 WITH READ ONLY;视图已建立。,

8、SQL INSERT INTO managers values(8181,Jinko,CLERK,null,null,1800,null,20);,创建使用WITH CHECK OPTION选项的视图,创建emp表的经理视图。,执行结果:ERROR 位于第 1 行:ORA-01402:视图 WITH CHECK OPTIDN 违反 where 子句,SQL CREATE OR REPLACE VIEW managers 2 AS SELECT*3 FROM emp WHERE job=MANAGER 4 WITH CHECK OPTION;视图已建立。,创建视图,创建视图时在内部查询中使用列的

9、别名要从视图中选择列时必须使用内部查询中所使用的列的别名,SQL CREATE VIEW salvu30 2 AS SELECTempno EMPLOYEE_NUMBER,ename NAME,3sal SALARY 4 FROMemp 5 WHEREdeptno=30;视图已建立。,创建复杂视图,创建一个基于两个表并且含有组函数的复杂视图。,SQL CREATE VIEWdept_sum_vu 2(name,minsal,maxsal,avgsal)3 AS SELECTd.dname,MIN(e.sal),MAX(e.sal),4AVG(e.sal)5 FROMemp e,dept d 6

10、 WHEREe.deptno=d.deptno 7 GROUP BY d.dname;视图已建立。,从视图检索数据,EMPLOYEE_NUMBER NAME SALARY-7698 BLAKE 2850 7654 MARTIN 1250 7499 ALLEN 1600 7844 TURNER 1500 7900 JAMES 950 7521 WARD 1250已选择6行。,SQL SELECT*2 FROMsalvu30;,可以向从表中检索数据一样从视图检索数据,同样可以查询视图的全部信息也可以查询视图指定的数据行和列。,查询视图,SQL*PlusSELECT*FROM empvu10;,SQ

11、L SELECT view_name,text 2 FROM user_views;,查询视图的名称和定义,可以通过数据字典USER_VIEWS查询视图名称和视图定义,视图定义的SELECT语句保存在LONG型的TEXT字段中。举例:,修改视图,用 CREATE OR REPLACE VIEW子句修改视图empvu10,为每个列添加别名。CREATE VIEW子句中别名的顺序必须和内部查询中的列的顺序一一对应,SQL CREATE OR REPLACE VIEW empvu10 2(employee_number,employee_name,job_title)3 AS SELECT empn

12、o,ename,job 4 FROMemp 5 WHEREdeptno=10;View created.,视图上执行DML操作的规则,在简单视图上可以执行 DML 操作如果视图中包含以下内容则不能删除数据行:组函数GROUP BY 子句DISTINCT 关键字,视图上执行DML操作的规则,如果视图包含以下内容,则不能实现对数据的修改:组函数、GROUP BY子句,DISTINCT关键字。使用表达式定义的列(或称导出列)ROWNUM 伪列如果是以下情况不能插入数据::上面提到的各种情况基表中未在视图中选择的其它列定义为非空并且没有默认值。,SQL CREATE OR REPLACE VIEW e

13、mpvu20 2 AS SELECT*3 FROM emp 4 WHERE deptno=20 5 WITH CHECK OPTION CONSTRAINT empvu20_ck;View created.,WITH CHECK OPTION 子句,如果要确保在视图上执行的DML操作仅限于一定的范围,便可使用WITH CHECK OPTION子句。,在视图中任何修改部门编号的操作都会失败因为这违反了 WITH CHECK OPTION约束,UPDATE empvu20 SET deptno=10 WHERE empno=7902;,ERROR 位于第 1 行:ORA-01402:视图 WITH

14、 CHECK OPTIDN 违反 where 子句,拒绝 DML 操作,在视图定义时使用WITH READ ONLY选项可以确保不能对视图执行DML操作。,SQL CREATE OR REPLACE VIEW empvu10 2(employee_number,employee_name,job_title)3 AS SELECTempno,ename,job 4 FROMemp 5 WHEREdeptno=10 6 WITH READ ONLY;View created.,任何试图执行DML的操作都会导致一个错误ORA-01752。,删除视图,删除视图并不会删除数据因为视图是基于数据库中的基

15、表。,SQL DROP VIEW empvu10;View dropped.,DROP VIEW view;,视图重新编译,当基表改变后,视图会失效ORACLE会在这些视图被访问时自动重新编译可使用ALTER VIEW对视图重新编译ALTER VIEW可以在运行视图前发现重新编译的错误ALTER VIEW 仅能明确地重新编译视图,要改变视图的定义,要使用CREATE OR REPLACE,视图小结,视图是基于一个或多个表或视图的逻辑表,使用视图具有以下优点:限制对数据库的访问简化查询维护数据的独立性对相同的数据可以建立不同的视图可以删除视图而不影响数据,什么是序列,序列是ORACLE对象,用来

16、生成一个顺序编号序列是用于生成唯一、连续序号的对象是一个可共享的对象可以是升序的,也可以是降序的典型应用是创建主键值,用于标识记录的唯一性序列是可以节约时间提高效率的对象,因为采用序列便不用编写序列产生代码,有效地减少应用程序的代码量。序列数值的产生及存储与表无关,因此相同的序列可以用于多个表。,CREATE SEQUENCE 语句,定义序列,自动产生等间隔的连续数值,CREATE SEQUENCE sequenceINCREMENT BY nSTART WITH nMAXVALUE n|NOMAXVALUEMINVALUE n|NOMINVALUECYCLE|NOCYCLECACHE n|N

17、OCACHE ORDER|NOORDER;,CREATE SEQUENCE 语句,语法中:sequence序列产生器的名称INCREMENT BY n指定序列值之间的间隔n,如果省略该项间隔为1START WITH n指定起始序列值n,如果该项省略起始值为1MAXVALUE n指定最大序列值NOMAXVALUE指定最大序列值为10的27次方,而降序的最大值为-1,这是一默认选项,CREATE SEQUENCE 语句,MINVALUE n指定最小序列值NOMINVALUE指定升序最小序列值为1,而降序最小序列值为负10的26次方,这是一默认选项CYCLE|NOCYCLE指定序列值在达到最大值或最

18、小值之后继续产生序列值,NOCYLE表示不再产生,NOCYLE是默认选项。CACHE n|NOCACHE指定序列值被Oracle服务器预先分配并存储在内存中,NOCACHE表示不预先分配并存储,NOCACHE是默认选项ORDER|NOORDER 指定按(或不按)时间先后顺序产生编号,这一点对于使用序列产生主键值非常重要,这个选项是唯一关系到并行服务程序的选项。,创建序列,创建名称为DEPT_DEPTNO的序列,将其作为DEPT表的主键没有使用CYCLE选项,SQL CREATE SEQUENCE dept_deptno 2INCREMENT BY 1 3START WITH 91 4MAXVA

19、LUE 100 5 NOCACHE 6 NOCYCLE;序列已创建。,上面的例子创建名称为DEPT_DEPTNO的序列,将其作为DEPT表的主键。序列起始值为91,没有使用高速缓存技术,并且不允许序列循环。如果序列用于产生主键值不能使用CYCLE选项,除非您采用了比序列循环更快的可靠机制清除老记录。,创建序列,创建名称为emp_empno的序列,将其作为EMP表的主键使用ORDER选项,SQL CREATE SEQUENCE emp_empno 2INCREMENT BY 1 3START WITH 7961 4MAXVALUE 9999 5NOCYCLE 6ORDER;序列已创建。,如果IN

20、CREMENT BY指定的数值为负数,那么序列值将递减产生。同样ORDER|NOORDER选项也是可用的,ORDER选项表示序列值有序产生,这一点对于使用序列产生主键值非常重要,这个选项是唯一关系到并行服务程序的选项。如果序列采用了将序列值预先分配并存储在内存中,一旦出现系统故障这些预先产生的序列值将丢失,确认序列,在字典表USER_SEQUENCES中可以验证序列值LAST_NUMBER列显示了下一个有效的序列值,SQL SELECTsequence_name,min_value,max_value,2 increment_by,last_number 3 FROMuser_sequence

21、s;,NEXTVAL 和 CURRVAL 伪列,使用NEXTVAL 和CURRVAL伪列可以引用序列值NEXTVAL用于返回序列下一个可获取的序列值,您必须在NEXTVAL前用序列名作前缀。当你引用sequence.NEXTVAL,一个新的序列值产生并且将当前值放入CURRVAL伪列中。NEXTVAL每次被引用时都返回一个序列值,甚至是对于不同的用户CURRVAL 获取当前序列值,CURRVAL能被引用之前必须用NEXTVAL先产生一个序列值,必须在CURRVAL前冠以序列名作为前缀,应用sequence.CURRVAL便可得到最后返回给用户程序数值。,使用序列,插入一条新的部门记录,部门在S

22、an Diego 名称为“MARKETING”查看序列DEPT_DEPTNO 的当前值,SQL INSERT INTOdept(deptno,dname,loc)2 VALUES(dept_deptno.NEXTVAL,3 MARKETING,SAN DIEGO);已创建 1 行。,SQL SELECTdept_deptno.CURRVAL 2 FROMdual;,执行结果:CURRVAL-91已选择 1 行。,使用序列,假设现在您想在这个新部门雇用员工,可以采用包含以下代码的语句不断地插入新的雇员记录:查看序列EMP_EMPNO 的当前值,SQL INSERT INTO emp(empno,

23、ename,sal,deptno)2 VALUES(emp_empno.NEXTVAL,Makus,3 950,dept_deptno.CURRVAL);已创建 1 行。,SQL SELECTemp_empno.CURRVAL 2 FROMdual;,执行结果:CURRVAL-7961已选择 1 行。,使用序列,再一次插入新的雇员记录:再次查看序列EMP_EMPNO 的当前值,SQL INSERT INTO emp(empno,ename,sal,deptno)2 VALUES(emp_empno.NEXTVAL,Robert,3 1350,dept_deptno.CURRVAL);已创建 1

24、 行。,SQL SELECTemp_empno.CURRVAL 2 FROMdual;,执行结果:CURRVAL-7962已选择 1 行。,使用序列,在高速缓存中存放序列值可以提高对序列值的访问速度。在下列情况会产生序列值的间隙:使用了回滚操作使用了CACHE选项,但系统崩溃了序列用在多张表中或多个列中删除了表中的行序列被另一个会话先使用了如果序列定义中使用了NOCACHE选项,可以通过查询USER_SEQUENCES 表得到下一个有效的序列值。,修改序列,修改序列的增量值、最大值、最小值、循环选项或缓冲选项,SQL ALTER SEQUENCE dept_deptno 2 INCREMENT

25、 BY 1 3 MAXVALUE 999999 4 NOCACHE 5 NOCYCLE;Sequence altered.,不允许修改序列的START WITH选项,修改序列的原则,您必须是序列的所有者,或者您具备ALTER权限只能影响将来产生的序列值如果要求序列从一个不同的值重新开始产生数值则必须删除然后再重建该序列修改过程中有一些条件限制,例如新设定的序列最大值MAXVALUE不能比原有最大值小,删除序列,用DROP SEQUENCE语句从数据字典中将序列删除。序列一旦删除便再也不能被引用。,SQL DROP SEQUENCE dept_deptno;Sequence dropped.,序

26、列小结,可为表中的记录自动产生序列数值,既可以是惟一的,又可以是循环的,如果是用于主键列,则必须是惟一的是一个可共享的对象典型应用是创建主键值,用于标识记录的唯一性当序列驻留在缓存中可以有效地提高序列的访问效率序列数值的产生及存储与表无关,因此相同的序列可以用于多个表。,什么是索引,Oracle服务器索引是一种模式对象通过指针用于提高Oracle服务器检索记录的速度通过快速路经访问方法迅速定位数据减少磁盘的I/O操作在逻辑上和物理上都独立于表的数据Oracle服务器自动使用和维护索引,如何创建索引,自动创建当您在表中定义了PRIMARY KEY 或UNIQUE 约束,索引便自动在包含该约束的列

27、上创建手动创建用户可以在列上创建非唯一索引以有效地提高对记录的访问速度,创建索引,提高对EMP表的ENAME的查询速度,SQL CREATE INDEX emp_ename_idx 2 ON emp(ename);Index created.,CREATE INDEX indexON table(column,column.);,在多个列上创建索引,创建索引的原则,过多的索引并不总是更有好处过多的索引并不意味着更快的查询速度,每一次对含有索引的表进行DML操作就意味着索引必须更新,过多的索引会导致在DML操作后Oracle服务器要花费更多的时间在索引的更新上。经常用于WHERE子句或作为连接条

28、件的列所含数据值范围比较的列含有大量空值的列经常同时用于一个WHERE子句或连接条件的两个或多个列绝大多数情况下只查询出小于其总记录的2-4%的表记住如果您想实施唯一性,应该在表定义中定义唯一约束,然后唯一索引便自动创建。,创建索引的原则,如果是下列情况不要创建索引:表很小列很少在查询中作为条件绝大多数情况下查询出大于其总记录的2-4%的表频繁更新的表,验证索引,USER_INDEXES 数据字典视图包含索引的名称及其唯一性USER_IND_COLUMNS数据字典视图包含索引名称、表名以及列名,SQL SELECTic.index_name,ic.column_name,2ic.column_

29、position col_pos,ix.uniqueness 3 FROMuser_indexes ix,user_ind_columns ic 4 WHEREic.index_name=ix.index_name 5 ANDic.table_name=EMP;,删除索引,从数据字典中删除索引从数据字典中删除 EMP_ENAME_IDX索引要删除索引,您必须是索引的所有者或者具备DROP ANY INDEX 权限,SQL DROP INDEX emp_ename_idx;Index dropped.,SQL DROP INDEX index;,同义词,通过创建同义词(现有对象的一个别名)的方式

30、可以简化对数据对象的访问引用其它用户的表缩短对象名称的长度,CREATE PUBLIC SYNONYM synonymFOR object;,同义词有两种:公有同义词和私有同义词一个私有的同义词必须和本用户其它所有对象的名称不相同,否则出现:ERROR 位于第 1 行:ORA-00955:名称已由现有对象使用,同义词,公有同义词是对所有用户都可用的创建公有同义词必须拥有系统权限CREATE PUBLIC SYNONYM;创建私有同义词需要CREATE SYNONYM系统权限。,同义词通过给本地或远程对象分配一个通用或简单的名称,隐藏了对象的拥有者和对象的真实名称,也简化了SQL语句。,创建、删

31、除同义词,SQL CREATE SYNONYMd_sum 2 FORdept_sum_vu;同义词已创建。,SQL DROP SYNONYM d_sum;同义词已丢弃。,为视图 DEPT_SUM_VU 创建一个简洁的名字,删除同义词,创建公共同义词,SQL CREATE PUBLIC SYNONYM dept 2 FOR alice.dept;同义词已创建。,DBA可以创建公共同义词提供给所有用户使用,下面的例子为Alice的DEPT表创建了一个公共同义词DEPT:,对“dept”的查询等效于对“alice.dept”的查询。,公共同义词,/*查询当前用户的表、视图、同义词及序列*/SQL S

32、ELECT*FROM user_catalog;,USER_CATALOG 有一个同义词叫CAT,在SQL语句中您可以使用CAT来代替USER_CATALOG:,等价于执行以下的SQL语句。,SQL SELECT*FROM CAT;,查看同义词,SQL SELECT OBJECT_NAME FROMUSER_OBJECTS WHERE OBJECT_TYPE=SYNONYM;,通过查询数据字典USER_OBJECTS和USER_SYNONYMS,可以查看同义词信息,执行结果:OBJECT_NAME-D_SUM已选择 1 行。,表 Oracle数据库模式对象,系统为常用的对象预定义了一些同义词,

33、利用它们可以方便地访问用户的常用对象。如下表所示。,系统定义同义词,ROWID伪列,SQL SELECT ROWID,EMPNO,ENAME FROM EMP WHERE EMPNO=7788;,每一行都有一个惟一的、由系统生成的地址,称为ROWID。这一地址包含着某一行的精确位置,索引文件中存储着ROWID以检索行。,执行结果:ROWID EMPNO ENAME-AAAHbTAAJAAAAAeAAH 7788 SCOTT已选择 1 行。,ROWID伪列,SQL SELECT EMPNO,ENAME FROM EMP WHERE ROWID=AAAHbTAAJAAAAAeAAH;,如果删除了一

34、行,然后又插入这一行,那么它会得到一个新的ROWID。,执行结果:EMPNO ENAME-7788 SCOTT已选择 1 行。,控制用户访问,数据库管理员,用户,Username and passwordprivileges,用户访问控制在多用户环境下,您需要对数据库的访问和使用进行安全控制。对于Oracle服务器的数据库安全您可以实现以下功能:控制数据库访问对数据库中的特定对象设置访问权限通过数据字典验证权限的授予及回收为数据库对象创建同义词,权限,数据库安全系统安全数据安全系统权限:获得访问数据库的权限对象权限:操作数据库对象的内容模式:对象集合,例如表、视图和序列,系统权限,具备超过10

35、0种的有效系统权限DBA 具备高级别的系统权限创建用户和角色,并向用户和角色授权删除用户删除表备份表,创建用户,DBA使用CREATE USER语句创建用户P179每个用户都有一个默认表空间和一个临时表空间,SQL CREATEUSER king 2 IDENTIFIED BY saint 3 DEFAULT TABLESPACE USERS 4 TEMPORARY TABLESPACE TEMP;User created.,CREATE USER user IDENTIFIED BY password;,用户系统权限,GRANT privilege,privilege.|roleTO use

36、r,user.;,应用程序的开发者应该具备下列权限:CREATE SESSION 连接数据库的权限;CREATE TABLE 在用户模式下创建表的权限;CREATE SEQUENCE 在用户模式下创建序列的权限;CREATE VIEW 在用户模式下创建视图的权限;CREATE PROCEDURE在用户模式下创建过程、函数及包的权限。,一旦创建用户,DBA可以给用户授予指定的系统权限。,授予系统权限,DBA 可以授予用户特殊的系统权限,SQL GRANT create table,create sequence,create view 2 TO king;授权成功。,什么是角色,不按角色分配权限

37、,按角色分配权限,权限,用户,管理员,首先DBA必须先创建一个角色,然后分配权限给角色,最后给用户分配角色。,角色的优势:简化用户权限管理,便于集中控制,常用的内置角色 CONNECT,RESOURCE,DBA,角色是一组命名的系统权限,这组权限可以通过该名字授予用户。这种方法可以使授予和回收权限的维护工作变得更为简单。,创建角色和用户并为角色和用户授权,SQL CREATE ROLE manager;角色已创建,SQL GRANT create table,create view 2 to manager;授权成功。,SQL GRANT manager to XMAN,CLARK;授权成功。

38、,SQL CREATE USER XMAN PROFILE DEFAULT IDENTIFIED BY XMAN DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;用户已创建。,修改口令,创建用户认证的同时有一个初始化口令用户通过ALTER USER语句可以改变自己的口令,SQL ALTER USER scott 2 IDENTIFIED BY lion;用户已更改。,对象权限(11种)P180-182,对象权限 表视图序列过程、函数和包ALTER Y YDELETE Y YEXECUTE YINDEX YINS

39、ERT Y YREFERENCES YSELECT Y Y YUPDATE Y Y,UNDER,READ,WRITE,对象权限,不同对象具有不同的对象权限对象的所有者拥有该对象的所有权限对象所有者可以将其拥有的对象的权限授予其他用户,GRANTobject_priv(columns)|ALL ONobject TOuser|role|PUBLIC WITH GRANT OPTION;,对象授权,SQL GRANTselect 2 ONemp 3 TOsue,rich;Grant succeeded.,SQL GRANT update(dname,loc)2 ONdept 3 TOscott,m

40、anager;Grant succeeded.,授予对EMP的查询权限,授予Scott、Manager更新指定列dname、loc的权限,使用 WITH GRANT OPTION 和 PUBLIC 关键字,允许系统中的所有用户都能对Alice的 DEPT表进行查询。,SQL GRANTselect,insert 2 ONdept 3 TOscott 4 WITH GRANT OPTION;Grant succeeded.,SQL GRANTselect 2 ONalice.dept 3 TOPUBLIC;Grant succeeded.,赋予对象能继续授权的权限,验证授权,数据字典表描述ROL

41、E_SYS_PRIVS授予角色的系统权限ROLE_TAB_PRIVS授予角色的表的权限USER_ROLE_PRIVS被授予的角色USER_TAB_PRIVS_MADE在用户对象级别上被分配的对象权限USER_TAB_PRIVS_RECD授予用户的对象权限USER_COL_PRIVS_MADE在用户对象列一级上被分配的对象权限USER_COL_PRIVS_RECD在指定列上分配给用户的对象权限,如何回收对象权限,使用REVOKE 语句回收已经授给其他用户的权限在授权时使用了WITH GRANT OPTION选项进行授权的用户的权限同样可以回收,REVOKE privilege,privilege.|ALLON objectFROM user,user.|role|PUBLICCASCADE CONSTRAINTS;,回收对象权限,作为用户Alice,将授予用户Scott对dept表的SELECT和INSERT权限收回,SQL REVOKEselect,insert 2 ONdept 3 FROMscott;Revoke succeeded.,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号