150 likes | 294 Views
ORACLE. 第三讲 DCL 、 TCL. 本章目标. 熟练掌握用户的创建和删除 熟练掌握 GRANT 与 REVOKE 的使用 熟练掌握事务控制命令 掌握数据的导入与导出. 数据控制语言 DCL. 什么是数据控制语言 数据控制语言为用户提供权限控制命令。 为什么使用数据控制语言 数据库对象(比如表)的所有者对这些对象拥有独有的控制权限。所有者可以根据自己的意愿决定其他用户如何访问对象,授予其他用户权限( INSERT 、 SELECT 、 UPDATE…… ),使他们可以在其权限范围内执行操作。. 数据控制语言 DCL.
E N D
ORACLE 第三讲 DCL、TCL
本章目标 • 熟练掌握用户的创建和删除 • 熟练掌握GRANT与REVOKE的使用 • 熟练掌握事务控制命令 • 掌握数据的导入与导出
数据控制语言DCL • 什么是数据控制语言 数据控制语言为用户提供权限控制命令。 • 为什么使用数据控制语言 数据库对象(比如表)的所有者对这些对象拥有独有的控制权限。所有者可以根据自己的意愿决定其他用户如何访问对象,授予其他用户权限(INSERT、SELECT、UPDATE……),使他们可以在其权限范围内执行操作。
数据控制语言DCL 例如,如果一个用户被授予对某个表的SELECT权限,那么他只可以查看数据,而不能对该表执行其他任何DML操作。授予的权限还可以由所有者随时撤消。 • 数据控制语言包含的命令 • GRANT • REVOKE
数据控制语言DCL • 创建一个用户 • 1、使用SYSTEM用户登陆ORACLE数据库,即在 SYSTEM用户模式下进行创建用户的操作。 CREATE USER peri --创建用户的用户名 IDENTIFIED BY peri; --创建用户的登陆密码 • 2、给创建的用户授予登录权限和创建对象权限 GRANT connect,resource TO peri;
数据控制语言DCL • 使用GRANT 命令授予对象权限 • 语法:GRANT 操作权限 ON 对象名 TO 用户 • 注意:用户可以执行授予权限操作必须满足 • 是对象的所有者 • 被授予with grant option权限
数据控制语言DCL • 使用GRANT 命令授予对象权限 • 1、在SCOTT用户模式下将emp表的SELECT权限授予peri • grant select on emp to peri; • 2、在SCOTT用户模式下将emp表的所有权限授予peri • grant all on emp to peri; • 3、将可以进行授权操作的权限授予peri • grant all on emp to summer with grant option;
数据控制语言DCL 使用了“WITH GRANT OPTION”授予用户权限,则接受该权限的用户可以将此权限授予其他用户。 • 4、学生练习:自己创建一个用户,获得某权限以后,使用“WITH GRANT OPTION”授予该用户权限,并再创建一个用户,将第一个用户拥有的权限授予第二个用户。
数据控制语言DCL • 使用REVOKE 命令收回对象权限 • 语法: REVOKE 操作权限 ON 对象名 FROM 用户 • 注意:当收回上级权限以后,由上级授权的下级拥有的权限也被收回。 • 收回peri用户拥有的对emp表操作的权限 • revoke all on emp from peri;
事务控制语言TCL • 什么是事务 • 事务是一个最小的工作单元,不论成功与否都作为一个整体进行工作。不会有部分完成的事务。 • 事务是由几个任务组成的,因此,如果一个事务作为一个整体是成功的,则事务中的每个任务都必须成功。如果事务中有一部分失败,则整个事务失败。 • 当事务失败时,系统返回到事务开始前的状态,这个取消所有变化的过程称为“回滚”(ROLLBACK)。
事务控制语言TCL • 为什么要使用事务控制语言 • 例如,如果一个事务成功更新了两个表,在更新第三个表时失败,则系统将两次更新恢复原状,并返回到原始状态。保证事务的整体成功或失败的完整性,称为事务控制。
事务控制语言TCL • 在哪里使用事务控制语言 • 事务只有在提交(COMMIT)后,对数据库的更改才可以永久保持。事务以执行更新操作的SQL语句开始,并显示的一ROLLBACK或COMMIT语句结束,但使用DDL语句时,事务处理将隐式的自动结束。
事务控制语言TCL • COMMIT命令 • 此命令用于提交并结束事务。只用使用COMMIT命令,才可以对数据库执行永久性的事务更改。 • 语法:commit;
事务控制语言TCL • ROLLBACK命令 • 此命令用于撤消在当前事务中已完成的操作。可以回滚整个事务处理,以便撤消由SQL语句做出的所有修改;也可以将事务回滚到某个保存点,以回滚该保存点后的修改。 • 语法:rollback;
事务控制语言TCL • SAVEPOINT命令 • 保存点类似于标记,它将很长的事务处理划分为较小的部分。它们用来标记事务中可以应用回滚的点。因此,SAVEPOINT和ROLLBACK一起用于回滚当前事务的一部分。 • 语法:savepoint 保存点名称; rollback to 保存点名