我正在使用MySQL进行SQL查询。 我已登录默认用户“root”,并创建/添加了两个新用户“ user1 ”& “的用户2 ”。在每个用户下,我分别创建了一个数据库“ database1 ”和“ database2 ”,并提供了 ALL PRIVILEGES 。 现在回答我的问题。
如何从“ user1 ”隐藏“ database1 ”,从“ user1 ”隐藏“ database2 ” ...? 可能吗..?请帮忙谢谢..
答案 0 :(得分:2)
而不是Grant all privileges on *.* to 'user1'@'IP';
& Grant all privileges on *.* to 'user2'@'IP';
您需要revoke all privileges on *.* from 'user1'@'IP';
& revoke all privileges on *.* from 'user1'@'IP';
这样他们就看不到所有的数据库了。
然后,通过执行GRANT ALL PRIVILEGES ON database1.* TO 'user1'@'IP';
&只授予每个用户需要查看/访问的数据库的权限。 GRANT ALL PRIVILEGES ON database2.* TO 'user2'@'IP';
这当然是假设您希望每个用户都拥有其数据库的所有权限。
运行其他命令后不要忘记flush privileges
。
注意:不确定您的IP范围是什么,或者您使用的是通配符(%
),所以我只是放IP
。
如果将来有疑问,请参阅dev.mysql