gpt4 book ai didi

查看所有数据库的MySQL权限

转载 作者:行者123 更新时间:2023-11-29 01:36:26 25 4
gpt4 key购买 nike

我的服务器上有一些用户可以访问每个 MySQL 数据库。我正在尝试撤销特权,但我不确定该怎么做。

例如:我有一个用户bob,他可以访问我服务器上的每个数据库。我运行以下命令以查看 bob 拥有哪些权限:

mysql -e "select * from information_schema.user_privileges;" | grep bob
'bob'@'%' def SELECT NO
'bob'@'%' def INSERT NO
'bob'@'%' def UPDATE NO
'bob'@'%' def DELETE NO
'bob'@'%' def CREATE NO
'bob'@'%' def FILE NO
'bob'@'%' def CREATE USER NO

GRANTALLSUPER 不会跳出。我创建了一个新数据库 sometest,切换到 bob 的帐户,然后看到 bob 可以访问 sometest。不确定我在这里遗漏了什么。

编辑:我运行了 SHOW GRANTS FOR 'bob'@'%'; 并查看:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN,
PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
ON *.* TO 'bob'@'%'

1) 如何取消此权限?我假设如果我运行:

REVOKE SELECT, INSERT,... on *.* to 'bob'@'%';

它将删除权限,例如

GRANT ALL ON bobsdb.* TO 'bob'@'%';

这是我不想发生的。但也许最好只是删除所有权限并从头开始重新构建它们。

2) 如何识别这样的所有权限?我是否必须查看每个用户?

最佳答案

您应该能够使用以下命令查看用户的授权:

SHOW GRANTS FOR 'bob'@'localhost';

来自 MySQL 手册:

The SHOW DATABASES privilege enables the account to see database names by issuing the SHOW DATABASE statement. Accounts that do not have this privilege see only databases for which they have some privileges, and cannot use the statement at all if the server was started with the --skip-show-database option. Note that any global privilege is a privilege for the database.

如果启用了 SHOW DATABASES,则撤销该权限。

REVOKE SHOW DATABASES ON *.* FROM 'bob'@'localhost';

最后,使用命令重新加载所有权限:

FLUSH PRIVILEGES;

(或重新启动 MySQL - 如果这是一个选项 - 通常不是)。

P.S:您可能需要将“localhost”替换为您的数据库主机名。

一些引用资料:

编辑:

回答您的问题:

1) How does one drop this permission? I assume if I run: REVOKE SELECT, INSERT,... on *.* to 'bob'@'%';

您可以简单地运行 REVOKE ALL ON *.* TO 'bob'@'%';

2) How does one identify all permissions like this? Do I have to look over every user?

查看此 blog post. 免责声明:我与此博客无关。

关于查看所有数据库的MySQL权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41905340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com