在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是不是安全
Posted
技术标签:
【中文标题】在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是不是安全【英文标题】:Is it safe to use MySQL triggers in PHP software that will be installed on many random hostings在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是否安全 【发布时间】:2012-01-10 02:22:37 【问题描述】:如今 mysql 触发器有多常见 - 绝大多数主机是否都安装了足够的 MySQL 服务器?
【问题讨论】:
这个问题很可能因为过于宽泛而被关闭。你能给我们一个更具体的用例吗? 【参考方案1】:除非您要求使用专用主机或类似的主机,例如 VPS 主机,否则我不会尝试在桌子之外使用太多其他东西。
大多数共享/转销商配置都存在有关 VIEW、TRIGGERS 和 STORED PROCEDURES 的权限问题。
如果您不介意为您的应用程序需要专用托管,那么我认为您可以安全地使用这些。
【讨论】:
我相信这是真的,因为许多共享主机使用多个用户之间共享的单个 MySQL 实例。要更清楚。 MySQL 服务器可能支持触发器,但访问数据库的用户很可能无权使用触发器。 确实,如果我没记错的话,这是因为 VIEWS、TRIGGERS 和 STORED PROC 的使用是在服务器级别(用于创建)授予的,因此大多数共享主机无法授予此权限...跨度> 请参阅此处的文档,“在 MySQL 5.1.6 之前,创建或删除触发器需要 SUPER 权限。” dev.mysql.com/doc/refman/5.1/en/grant.html 那你得看看我流行的网络托管服务商,他们肯定做错了什么...... :(【参考方案2】:我不知道绝大多数情况,但我不会选择不允许我执行触发器和存储过程的提供程序。
触发器非常强大,在执行高级操作时非常难以生存,尤其是在不停机的情况下进行升级和在表之间迁移数据。
我会说触发器在严肃的设置中非常常见,但在数据库的早期阶段几乎从未出现。
只要我的 50 美分。
【讨论】:
【参考方案3】:我认为这会很好。根据 MySQL 文档,从 MySQL 5.0.2 开始支持触发器:
从 MySQL 5.0.2 开始包括对触发器的支持。
http://dev.mysql.com/doc/refman/5.0/en/triggers.html
该版本已经存在了一段时间,从 2005 年 10 月发布的 5.0 开始: http://en.wikipedia.org/wiki/MySQL#Product_history
所以,我猜这对你有用,除非它安装在一个非常旧的主机上,否则它应该可以工作。
【讨论】:
以上是关于在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是不是安全的主要内容,如果未能解决你的问题,请参考以下文章