mysql新创建的用户就拥有information_schema表的权限,有问题吗?需要删除这个权限吗?

mysql 8.0 新建用户:

create user 'us_user'@'%' identified by '123456';

创建完之后查看该用户的权限:

mysql> show grants for 'us_user';
+-------------------------------------+
| Grants for us_user@%                |
+-------------------------------------+
| GRANT USAGE ON *.* TO `us_user`@`%` |
+-------------------------------------+
1 row in set (0.00 sec)

使用该帐号登录,然后:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.02 sec)

请问:

(1) GRANT USAGE ON . TO us_user@% 是什么意思?我该如何取消这个权限呢?

(2)这个帐号为啥一创建就能够访问 information_schema 这个表?有危险吗?我这个帐号是准备对外公开的,我希望他仅能对我之后新建的某个数据库有所有权限,而不会对我的整个数据库造成安全漏洞。

谢谢大佬回答。

 回答:
 

1.不用。因为它不会给用户操作权限。
2.'information_schema'只提供关于数据库结构的信息,而且不能用于修改数据,所以没有安全问题。
如果你想要限制可以先创建 my_new_database:

CREATE DATABASE my_new_database;

然后分配权限:

GRANT ALL PRIVILEGES ON my_new_database.* TO 'us_user'@'%';

公司简介

 

自1996年以来,公司一直专注于域名注册、虚拟主机、服务器托管、网站建设、电子商务等互联网服务,不断践行"提供企业级解决方案,奉献个性化服务支持"的理念。作为戴尔"授权解决方案提供商",同时提供与公司服务相关联的硬件产品解决方案。
备案号: 豫ICP备05004936号-1

联系方式

地址:河南省郑州市经五路2号

电话:0371-63520088

QQ:76257322

网站:800188.com

电邮:该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。