过程和触发器增强了数据库的安全性,提高了效率并促进了标准化。
过程和触发器的定义在数据库中提供,与任何一个数据库应用程序相分离。这一分离具有多个优点。
过程和触发器使多个应用程序所执行的操作实现标准化。通过对操作进行一次编码并将编码存储于数据库中以供将来使用,应用程序只需调用过程或触发触发器即可反复获得预期结果。此外,因为更改只需在一个地点进行,所以,如果操作的实现方式发生更改,则使用该操作的所有应用程序都可以自动获取新功能。
在网络数据库服务器环境中使用的过程和触发器无需通过网络通信即可访问数据库中的数据。这意味着,与在某一客户机的应用程序中实现的过程和触发器相比,数据库服务器环境中的过程和触发器的执行速度更快,对网络性能的影响更小。
当创建过程或触发器时,系统自动检查过程或触发器的语法是否正确,然后将它们存储在系统表中。任何应用程序第一次调用过程或触发触发器时,将过程或触发器从系统表编译到服务器的虚拟内存中,然后从那里执行它们。由于过程或触发器的一个副本在第一次执行后将保留在内存中,因此,可以立即重复执行同一过程或触发器。此外,多个应用程序可以同时使用某一过程或触发器,同一应用程序也可以递归地使用某一过程或触发器。
通过授予用户对表中他们不能直接检查或修改的数据具有一定限制的访问权限,过程和触发器提供了安全性。
例如,要执行触发器必须要有关联表所有者的表权限,但要触发触发器,具有在该表中插入、更新或删除行的权限的任何用户都可以做到。同样,过程(包括用户定义的函数)根据过程所有者的权限执行,但授予权限的任何用户都可以调用这些过程。这意味着过程和触发器可以具有(并通常具有)与调用它们的用户 ID 不同的权限。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |