如何解决MariaDB GRANT EXECUTE on * this *过程
上下文: 我目前正在使用一种工具,该工具可以在MariaDB服务器上自动创建和设置数据库。为此,我有一个“设置”用户。为了创建数据库中所需的所有内容,在创建过程开始时,用户会在新数据库上获得一堆特权。完成后,我想调用一个过程来再次撤销特权。
为此,我创建了一个表,其中包含用户所需的所有默认特权。我的行动计划是先撤消设置用户的所有特权,然后从表中添加所有特权以及执行重置过程的特权。
撤销特权可以正常工作。从表中添加特权也是如此。我唯一的问题是,每当我尝试向设置用户授予重置过程本身的GRANT
特权时,都会遇到递归错误:
相关代码:
GRANT EXECUTE ON PROCEDURE SchemaName.ResetPrivileges TO `setup`@`10.0.0.4`;
(在ResetPrivileges过程中调用)
错误消息:
SQL错误(1456):例行的ResetPrivileges超出了递归限制0(由max_sp_recursion_depth变量设置)
问题:
我不太确定MariaDB如何处理GRANT
,但是一旦授予特权,该过程似乎就以某种方式被称为(?)。有什么方法可以从过程中授予用户对此过程的权限?我唯一想到的解决方法是创建另一个过程,仅用于授予此特权并分别调用它,但是必须有更好的方法,对吧?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。