• 第33章 利用存储过程和触发器进行管理


    这个章节讨论使用存储过程和触发器来管理的好处 它包括下面几个章节:


    1.使用存储过程和触发器用于安全目的




    2.是用存储过程来加强性能


    33.1 使用存储过程和触发器用于安全目的




    存储过程提供了安全好处用于数据库管理。你可以定义过程用于普通用户(非管理用户)的安全的数据访问保


    护, 实现这种预防安全措施。




    假设你有一个表包含了sales 交易数据 不能对普通用户可见的,


    但是对于汇总值不需要保护。




    创建一个过程来计算汇总,使用一个账号来直接访问表数据,


    使用定义的安全特性在过程定义里,它执行账户的权限可以访问表数据。


    通过这种方式 用户通过过程访问信息,但是用过程保护了数据 信息仍旧对他们是不可见的。




    存储过程在修改数据是保护数据也是有用的, 存储过程可以改变表以一种安全的方式,


    不需要用户直接访问表。这个阻止了那些可能不安全的改变




    为了实现这个方法,使用下面的策略:


    1.对于有疑问的表,普通用户不允许insert,update,和delete 语句的操作。


    (你可以只给适当的权限使用)




    2.调用一个程序化的接口来修改表,也就是说,使用一个管理账号有访问表的权限,




    写一个定义了安全的过程,执行需求需改的表,给出相应的值作为参数。


    给执行权限给相应的用户




    3.需要用户来执行表修改通过调用存储过传递列值作为参数来修改。




    存储过程表现为一个gateway 用于检查输入数据的合法性,只有安全的才会执行请求的操作




    过程方法也可以用于允许或者不允许修改基于因子相比列值作为参数


    比如定义客户端用户或者当前的日期和时间。




    比如,你可以有一个调查有一个到期日期, 任何尝试插入新的记录到一个选举表可能会被拒绝。


    一个基于时间的过程可以实现这个约束。




    触发器提供了另一种方式来增加数据库的安全用于数据的修改,通过


    改变操作语句。 为了这个目的,AFTER 触发器是没多大作用的相比触发器前,


    在触发器后的 进来的数据,它已经存储在了数据库里 触发器已经不能做出任何的正确的动作。






    在触发器前,相比 可以检查数据的值来核对是否合理。






    如果不是,触发器可以修改值使得更合适在存入数据库前。




    比如,一个值越界了 可以改变成在界限内。 一个值不在任何允许的类里面可以变更为默认类


    在这两个例子中,触发器阻止了不正确的值映射成一个正确的值。




    前面的触发器策略时用有的 如果你要去过滤一些数据。


    如果目的是退出整个操作 当值是不合适的,你不能使用触发器实现。


    然而,你可以使用程序实现


    不允许直接访问表数据对于普通用户,让普通用户调用存储过程来执行相应的修改。




    33.2  使用存储过程来加强性能


    使用存储过程能够提升显著的性能对于一个应用。好处依据 网络带宽消耗在客户端和服务器之间,




    考虑到中度复杂的操作,没有使用存储过程。 需要客户端发送10个SQL语句到服务器,


    服务器需要处理每个语句。这种操作调用10个语句发送到服务器,10个结果返回给客户端。




    有些结果可能简单的表明成功或者失败,但是有些可能包含数据的结果集。


    这个会导致大量的网络流量






    如果操作是调用了存储过程,那性能特征就改变了。 过程只发一次,


    客户端调用过程。 在这种情况下,server 执行存储过程不需要客户端一次又一次的发送。


































     

  • 相关阅读:
    【树论】新二叉树
    【贪心】umi的函数
    【模拟】高精度练习之加法
    【模拟】高精度练习之减法
    【贪心】线段覆盖
    【树论】二叉树的序遍历
    【贪心】超级书架
    【动态规划】爱与愁的心痛
    【图论】牛大赛
    【图论】产生数
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351729.html
Copyright © 2020-2023  润新知