1. 用户管理
创建用户
create user zhang3 identified by ‘123123’;
表示创建名称为zhang3的用户,密码设为123123;
查看用户
select host,user,password,select_priv,insert_priv,drop_priv from mysql.user;
host : 表示连接类型
% 表示所远程通过 TCP方式的连接
IP 地址 如 (192.168.1.2,127.0.0.1) 通过制定ip地址进行的
TCP方式的连接
机器名 通过制定i网络中的机器名进行的TCP方式的连接
::1 IPv6的本地ip地址 等同于IPv4的 127.0.0.1
localhost 本地方式通过命令行方式的连接 ,比如mysql -u xxx -p 123xxx 方式的连接。
User: 表示用户名
同一用户通过不同方式链接的权限是不一样的。
password : 密码
所密码串通过 password(明文字符串) 生成的密文字符串。加密算法为MYSQLSHA1 ,不可逆 。
mysql 5.7 的密码保存到 authentication_string 字段中不再使用password 字段。
select_priv , insert_priv等
为该用户所拥的权限。
1.1 修改当前用户的密码
set password =password(‘123456’)
修改某个用户的密码:
update mysql.user set password=password(‘123456’) where user=‘li4’;
flush privileges; #所通过user表的修改,必须用该命令才能生效。
1.2 修改用户名
update mysql.user set user=‘li4’ where user=‘wang5’;
flush privileges; #所通过user表的修改,必须用该命令才能生效。
1.3 删除用户
drop user li4 ;
不要通过delete from user u where user=‘li4’ 进行删除,系统会残留信息保留。
2. 权限管理
2.1 授予权限
授权命令:
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
该权限如果发现没该用户,则会直接新建一个用户。
比如
grant select,insert,delete,drop on atguigudb.* to li4@localhost ;
#给li4用户用本地命令行方式下,授予atguigudb这个库下的所表的插删改查的权限。
grant all privileges on . to joe@‘%’ identified by ‘123’;
#授予通过网络方式登录的的joe用户 ,对所库所表的全部权限,密码设为123.
就算 all privileges 了所权限,grant_priv 权限也只 root 才能拥。
给 root 赋连接口令 grant all privileges on . to root@‘%’ ;后新建的连接没密码,需要设置密码才能远程连接。
update user set password=password(‘root’) where user=‘root’ and host=‘%’;
2.2 收回权限
revoke 权限1,权限2,…权限n on 数据库名称.表名称 from 用户名@用户地址 ;
REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;
#若赋的全库的表就 收回全库全表的所权限
REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;
#收回mysql库下的所表的插删改查权限
对比赋予权限的方法。
必须用户重新登录后才能生效
2.3 查看当前用户权限
查看当前用户权限
show grants;
查看某用户的全局权限
select * from user ;
查看某用户的某库的权限
select * from db;
查看某用户的某个表的权限
select * from tables_priv;
2.4 通过远程工具访问
1、先 ping 一下数据库服务器的ip 地址确认网络畅通。
2、关闭数据库服务的防火墙
service iptables stop
3、 确认Mysql中已经可以通过远程登录的账户
select * from mysql.user where user=‘li4’ and host=‘%’;
如果没用户,先执行如下命令:
grant all privileges on . to li4@‘%’ identified by ‘123123’;