mysql 创建函数 权限_mysql – 创建没有SUPER权限的存储函数和触...

设置log_bin_trust_function_creators = 1是“不太安全”,因为它相信创建存储程序的用户知道他们在做什么,而不是要求他们持有SUPER权限(这也意味着他们知道他们在做什么).

这里的问题是,在复制环境中,一些权限控制在副本服务器中更加宽松,可能使用户定义存储程序访问主服务器上不可用的权限提升机制.您现在可能没有复制环境,但每个MySQL服务器都是潜在的复制主机,因此解释仍然有效.

它是一个动态变量,因此可以在运行时启用,但这需要登录用户具有SUPER权限.将log_bin_trust_function_creators = 1添加到默认文件的[mysqld]部分,然后重新启动服务器守护程序以启用此功能.

有用的,有点相关的花絮:

如果SELECT @@ BINLOG_FORMAT;返回STATEMENT,在配置文件中将其更改为MIXED,binlog_format = MIXED. STATEMENT是一个旧的默认值,应该在很久以前就已经被弃用,并且在使用存储的程序时可能会让您更加悲痛. MIXED避免了这些问题,因为MIXED可以正确记录不确定的语句.另一种选择,ROW,在我的经验中甚至更好,但MIXED是默认值应该是什么.

定义存储函数时,如果它确实是确定性的,请确保将其声明为DETERMINISIC,如果它使用表但不修改它们,则添加READS SQL DATA,如果函数仅执行内部计算但不使用,则添加NO SQL表.如果给定相同的输入,对于所有调用以及在单个查询的执行中的所有行,确定性函数将始终返回相同的输出.在某些情况下,如果服务器知道此确定性,您将获得性能优势.

如果您倾向于编写不确定的函数,请考虑使用过程.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值