用户管理
- 一.用户
- 1.用户信息
- 2.创建用户
- 3.修改密码
- 4.删除用户
- 二.数据库权限
- 1.给用户授权
- 2.回收权限
如果在以下操作中出现以下报错
可以使用刷新权限
一.用户
1.用户信息
MySQL中的用户,都存储在系统数据库mysql的user表中。
字段解释:
host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆。
user: 用户名。
authentication_string: 用户密码通过password函数加密后的。
*_priv: 用户拥有的权限。
所以这里有一种非常粗暴的方法添加用户,直接使用insert向user表里进行插入即可。
2.创建用户
直接插入法实在过于麻烦并且危险,所以我们一般使用mysql专门的创建语句。注意:这些语句本质也是在对user表进行修改。
语句:create user ‘用户名’@‘登陆主机/ip’ identified by ‘密码’;
接着进行创建
但是这种创建的用户只允许进行本地登陆,为了能进行远程登陆,我们可以使用下面的方法。
%就代表任意。注意:在一般工程里是严禁使用%的,它是不安全的。
3.修改密码
当然可以直接修改use表,但不安全。
修改自己的密码
set password=password(‘新的密码’);
用root修改密码
set password for ‘用户名’@‘主机名’=password(‘新的密码’)
4.删除用户
当然我们可以直接删除user表里的数据,但这样很不安全,所以使用专门的语句。
语法:drop user ‘用户名’@‘主机名’
二.数据库权限
MySQL数据库提供的权限列表:
1.给用户授权
刚创建的用户没有任何权限。需要给用户授权。
语法:grant 权限列表 on 库.对象名 to ‘用户名’@‘登陆位置’ [identified by ‘密码’]
说明:
1.权限列表,多个权限用逗号分开
2.*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
3.库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
4.identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户
再开一个终端,进行双向查看,一个root,一个普通账户
在root终端里创建一个rootDB库,向里面添加些表
很明显创建的库在普通终端里是无法看见的
给用户chz赋予rootDB数据库下所有文件的select权限
查看给chz的权限
语法:show grants for ‘用户名’@‘主机’;
2.回收权限
revoke 权限列表 on 库.对象名 from ‘用户名’@‘登陆位置’;