Mysql管理员常用命令

2020-10-28  本文已影响0人  爱折腾的傻小子
查看mysql中所有用户
-- 进入mysql库
USE mysql; 
-- 查看所有用户
SELECT user,host FROM user;  
/* 
mysql> select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| default       | %         |
| root          | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
5 rows in set (0.00 sec)
*/
创建用户
-- 进入mysql库
USE mysql;
-- 查看所有用户
SELECT user,host FROM user;  
-- 不指定主机名时,表示这个用户可以从任何主机连接mysql服务器
create user test1;
-- 查看所有用户
SELECT user,host FROM user;
-- 从任何主机连接mysql服务器
CREATE user test1;
-- test2的主机为localhost表示本机,此用户只能登陆本机的mysql
CREATE user 'test2'@'localhost' identified by '123456';
-- test3可以从任何机器连接到mysql服务器
CREATE user 'test3'@% identified '123456';
-- test4可以从192.168.11段的机器连接mysql
CREATE user 'test4'@'192.168.11.%' identified by '123456';
修改密码
use mysql;
-- 修改mysql.user表信息
update user set authentication_string = password('321') where user ='test1' and host = '%';
-- 刷新
flush privileges;  
-- 通过表的方式修改之后,需要执 flush privileges; 才能对用户生效
-- 5.7中user表中的authentication_string字段表⽰密码,⽼的⼀些版本中密码字段是password
给用户授权
-- 给test1授权可以操作所有库所有权限,相当于dba
GRANT all ON *.* TO 'test1'@'%';
-- test1可以对seata库中所有的表执⾏select
GRANT select ON seata.* TO 'test1'@'%';
-- test1可以对seata库中所有的表执⾏select、update
GRANT select,update ON seata.* TO 'test1'@'%';
-- test1⽤户只能查询mysql.user表的user,host字段
GRANT select(user,host) ON mysql.user TO 'test1'@'localhost';
查看用户有哪些权限
--  主机可以省略,默认值为%
SHOW GRANTS FOR 'test1'@'localhost';
-- 查看当前用户的权限
SHOW GRANTS;
-- 当前是root账户
/* 
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
*/
撤销用户的权限
-- 可以先通过 show grants 命令查询一下用户对于的权限,然后使 revoke 命令撤销用户对应的权限
show grants for 'test1'@'localhost';
revoke select(host) on mysql.user from test1@localhost;
删除用户
-- 删除 test1
drop user test1@localhost;
delete from user where user='test1' and host='localhost';
flush privileges;
授权原则说明
总结
参考资料来源 微信公众号 "大侠学JAVA" mysql笔记
上一篇下一篇

猜你喜欢

热点阅读