首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL授权在performance_schema.*上创建存储过程?

MySQL授权在performance_schema.*上创建存储过程?
EN

Stack Overflow用户
提问于 2022-01-08 01:06:28
回答 1查看 122关注 0票数 -1

我明白为什么这个被封锁了。如果我是MySQL,我也不希望人们(很容易)在关键业务/内部使用数据库上一意孤行。然而,它应该支持合法的用例。

假设我有一个存储过程:

代码语言:javascript
复制
delimiter //
CREATE DEFINER=CURRENT_USER() PROCEDURE performance_schema.sp_flush_hosts()
BEGIN
  -- requires DROP privileges
  TRUNCATE TABLE performance_schema.host_cache;
END
//
delimiter ;

对于在大多数数据库上具有ALL权限的名为ALL的用户。在实践中,MySQL似乎是明令禁止 for performance_schema

由于只有有限的一组特权适用于Performance表,因此尝试使用GRANT ALL作为在数据库或表leval上授予特权的速记,但出错:

很好。因此,让我们授予一些特定的权限:

代码语言:javascript
复制
mysql> GRANT CREATE ROUTINE on perforamnce_schema.host_cache to 'root'@'%';
ERROR 1144 (42000): Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used

在同一文档(上面)中,只有: SELECT、UPDATE、DROP被单独列出,但它没有说明这些是否是唯一可用的权限。如何授予创建此例程的权限?这可能吗?谢谢。

从这个答案中得到的启示:是否有一种在MySQL中有效地授予截断或删除表的方法?

EN

回答 1

Stack Overflow用户

发布于 2022-01-08 18:40:08

也许:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70628848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档