gpt4 book ai didi

mysql - 如何仅使用存储过程制作 MySQL 应用程序?

转载 作者:行者123 更新时间:2023-11-29 05:41:17 25 4
gpt4 key购买 nike

我读过一些应用程序通过拒绝除执行之外的所有 mysql 用户权限来加强应用程序安全性。我需要这样的方案,因为我的应用程序需要在返回值之前进行一些检查,并且触发器不是一个选项,因为在 SELECT 查询中不允许。

因此,问题是:如果您正在编写一个只能访问存储过程的应用程序,您将如何构建您的应用程序?我从未见过这种应用程序,我想看看其他人在重新发明轮子之前做了什么。

最佳答案

静静地,你终会精神失常。我去过那里(有一个 stores proc 驱动的应用程序),它有很多缺点,其中一些是:

  • “代码更改”实际上是数据库更改,这会导致生产中出现特殊问题,因为您必须删除/创建您的过程并让 DBA 参与,并且您不能进行“二进制”发布或“热门”版本。
  • 编程所需的专业知识更难找到(数据库存储过程与 perl/java/php 等)
  • 测试和调试要困难得多 - 很少有数据库提供单步调试器
  • 你实际上必须有一个数据库来运行你的代码——更难模拟/单元测试等
  • 您与数据库供应商紧密相关 - 没有“行业标准”PL/SQL 语言,因此移植很困难(移植基本上是重写)
  • PL/SQL 只能处理最简单的逻辑应用程序——它不适合业务逻辑

从好的方面来说:

  • 通常,数据库操作可以是原子操作并且速度更快
  • 可以在细粒度的“操作基础”而非“数据基础”上控制访问

编辑:细粒度访问通常(并且很容易)在应用程序层中进行控制。

恕我直言,我根本不会使用存储过程来实现。可能有几个非常以数据库为中心的问题可以使用存储过程更好地解决,但理由必须确实令人信服才能证明去那里是合理的。

关于mysql - 如何仅使用存储过程制作 MySQL 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com