|
|
|
|
移动端

1.2.3 提高执行权限控制和交易完整性

《Oracle PL/SQL程序设计(第6版)(上下册)》本书基于Oracle数据库12C,从用PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、构造PL/SQL应用程序、高级PL/SQL等6个方面详细而系统地讨论了PL/SQL以及如何有效地使用它。本节为大家介绍提高执行权限控制和交易完整性。

作者:方鑫 译来源:人民邮电出版社|2017-09-06 17:48

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


1.2.3 提高执行权限控制和交易完整性

比可移植性更重大的缺陷是执行权限控制。数据库和SQL语言使得我们对任意特定表中数据的访问和变更有着完全的控制,例如,用GRANT命令,我们可以限定只有特定的角色和用户可以对一个给定表进行UPDATE操作。而另一方面,这个GRANT命令,却没法保证让用户按照正确的顺序对一个或多个表进行变更,而通常大多数商业规则都对交易顺序有所要求。

PL/SQL语言在逻辑交易处理上,能够提供严格控制和管理。PL/SQL实现其控制和管理的方法之一,就是实施了执行权限控制。我们不再对一个角色或用户授权以允许其对表进行更改,取而代之的,是只授权其执行一个过程,由这个过程控制并提供对其内部隐含的数据结构的访问。过程的所有者是数据库中的另一个schema(程序的“定义者”),这个schema被真正赋予了过程执行时所涉及的表的修改权限。由此,过程成为了交易的“守门员”。一个程序要执行某项交易,唯一的方法是调用这个过程,通过这个方法,整个应用交易的完整性得到了保证。

从Oracle数据库8i开始,Oracle通过AUTHID子句,给PL/SQL执行权限控制模块增加了相当的灵活性。有了AUTHID,我们不但可以在前面描述的模式下继续运行我们的程序,我们也可以选择使用AUTHID CURRENT_USER(调用者的权限),在这种情况下,程序是运行在调用者(当前)schema的权限之下的。这里我们只是将调用者权限作为一个示例,来展示PL/SQL随着时间的推移,如何变得成熟以及更灵活。

喜欢的朋友可以添加我们的微信账号:

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Tomcat与Java Web开发技术详解

本书详细介绍了在最新Tomcat 5版本上开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊