【问题标题】:Mysql Revoke permission for root userMysql撤销root用户的权限
【发布时间】:2018-06-12 23:27:11
【问题描述】:

我需要在 mySql 中撤销 root 用户的权限。 root 用户应该不能在数据库中创建和删除表。

我检查了撤销命令,但不知何故它不适用于 root 用户。如果我创建一个新用户并撤销权限,它可以工作,我缺少 root 用户什么或者我们无法撤销“root”的权限?

SHOW GRANTS FOR root@localhost;

--显示

GRANT RELOAD, SHUTDOWN, PROCESS, FILE, SHOW DATABASES, SUPER, REPLICATION SLAVE, REPLICATION CLIENT, CREATE USER, CREATE TABLESPACE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*7BB96B4D3E986612D96E53E62DBE9A38AAA40A5A'

GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `%`.* TO 'root'@'localhost' WITH GRANT OPTION

GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

然后

REVOKE all on myDb.* from root@'%';
FLUSH PRIVILEGES;

用户 'root'@'localhost' 拒绝访问数据库 'myDb'

【问题讨论】:

标签: mysql heidisql


【解决方案1】:

我想,你不想那样做。根用户通过这种方式拥有所有 CRUD 操作的所有权限,并创建新用户并赋予他们权限。

如果您的动机是限制访问,请根据您的需要设置不同的用户。例如:您可能只想让用户阅读记录。这是一个安全的选择,因为您只能将该用户用于阅读目的。或仅用于读取、写入和编辑权限。

编辑:

如果您仍想这样做,请查看此答案 How can I restore the MySQL root user’s full privileges? 。它可能会对你有所帮助。

【讨论】:

  • 我想这样做的原因是,当我在最终用户处安装 mysql 时,他们不小心运行了一些脚本,这导致我的应用程序出现问题(丢弃表)。所以我也想限制 root 的创建和删除表
  • 我建议在您的应用程序中进行更改并在 mysql 中创建一个新用户,该用户将拥有您想要的权限并限制他们。让您的应用程序使用新用户。将来您可能需要 root 权限。那时,只需以 root 身份登录并进行这些更改。
  • 是的,这是一种方法,但这种方法的问题在于,最终用户仍然可以使用 root 登录并执行脚本,对吧?
  • 您可以更改root密码,以便您只能访问它dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-16
  • 2013-04-20
相关资源
最近更新 更多