mysql - 在 phpMyAdmin 中创建没有 super 权限的 View

标签 mysql phpmyadmin

<分区>

我正在尝试通过 phpmyadmin 中的 SQL 选项卡来创建/导入这样的 View :

CREATE ALGORITHM=UNDEFINED DEFINER=`byname`@`localhost` SQL SECURITY DEFINER VIEW `wr_averages` AS select `nf_users`.`id` AS `id`,(`nf_users`.`points` / `nf_users`.`played`) AS `average_points` from `nf_users` where (`nf_users`.`played` > 24);

我收到这个错误:

#1227 - Access denied; you need the SUPER privilege for this operation

我无法在我的托管公司获得 SUPER 特权,那么有什么办法解决这个问题吗?

提前致谢:-)

最佳答案

来自文档:

如果指定 DEFINER 子句,除非您拥有 SUPER 权限,否则不能将值设置为您自己以外的任何用户。这些规则决定了合法的 DEFINER 用户值:

  • *如果您没有 SUPER 权限,则唯一合法的用户值是您自己的帐户,可以按字面指定或使用 CURRENT_USER 指定。您不能将定义者设置为其他帐户。*
  • 如果您拥有 SUPER 权限,您可以指定任何语法上合法的帐户名。如果该帐户实际上不存在,则会生成警告。

检查你的MySQL账号,​​不是byname@localhost

解决方案:

  • 使用授予 SUPER 权限的帐户创建带有 DEFINER 子句的新 View 。
  • 不要在 CREATE VIEW 中使用 DEFINER 子句,在这种情况下 MySQL 将创建 View DEFINER = CURRENT_USER。

关于mysql - 在 phpMyAdmin 中创建没有 super 权限的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492857/

相关文章:

MySQL连接表与2个引用表

mysql - 如何在MySQL中为每个 "event"ID存储多个用户ID

php - Dreamweaver 登录的安全性如何?

mysql - 如何将多个 csv 文件导入 MySQL 数据库

mysql - DQL 查询失败

mysql - 显示组中的用户数,甚至是空组

mysql - SQL 查询在 phpMyAdmin 上不起作用,因为我收到错误

mysql: 'WHERE something!=true' 排除字段为 NULL

mysql - phpmyadmin mysql docker 简单链接

mysql - 转换 sqlite 数据库不会使用 phpmyadmin 导入