今天使用Navicat给MySQL创建用户,并赋予权限时,无论怎么设置,都会显示所有的表。将问题记录下来,方便之后的查询
1、首先使用root用户登录数据库
2、点击 “用户” 选项,新建用户
3、在 “常规选项卡” 中填入需要创建用户的用户名、密码
需要注意的是,主机这一选项,若是填安装MySQL机器的IP地址,那么只能在这台机器的本地登陆这个新创建的这个用户,其他机器上将无法。若要在任何机器上登陆,需要填写%(百分号)
4、切换到 “服务器权限” 选项卡,若要只展示某个数据库(我们新建用户的目的,就是想将部分数据库、表展示给该用户),则这些选项一律不勾选
如果不小心勾选了这一页的某个选项,那么新创建的用户将会看到该机器上MySQL里的所有的数据库、表
5、切换到 “权限选项卡” ,点击添加权限
如下图所示:设置需要展示的库(表),以及分配给该用户的权限(查询、展示该视图)
6、最后点击 “保存” 按钮,就成功了
7、使用刚才创建的用户名密码,就可以登陆
可以看出,只会显示在第5步设置的视图,并且只有查询的权限
8、遇到的问题
(1)无论怎么设置,都会展示出来所有的表
详见第4步,是因为勾选了 服务器权限选项卡
下某个选项,取消勾选即可
(2)登陆该用户,打开某个库,显示报错信息
出现这种问题的原因是,参照第4步 权限选项卡
,没有将Select
与 Show View
全部勾选中(注意:必须都勾选,才会不报错)