mysql的用户和授权
-
查看用户
-
创建用户
-
修改用户
-
删除用户
授权:
-
查看用户权限
-
添加用户权限
-
删除用户权限
-
删除和添加的规则
-- 查看用户
-- 切换到mysql数据库
use mysql;
-- 查看用户的信息
select * from user;
-- 创建用户 create user '用户名'@'ip' identified by '密码';
create user 'andy'@'%' identified by '123456';
localhost:表示该用户可以在哪个主机上访问,如果写成localhost只能在mysql安装的服务器上访问,远程是无法访问
如果想让远程任意ip可以访问用通配符 %
密码 可以不写,如果不写 就是不要密码登陆,但是一般会写,而且复杂程度要提高 不符合规范:123456 abc@123 qweasd Abc@123
修改密码 set password(8.0以后的版本弃用)
set password for "账号"@"ip" = password("新的密码")
select * from user;
set password for 'andy'@'%' = password("abc123");
-- Unknown column 'password' in 'field list'
update user set password=password("bcd123") where user = 'andy'; -- 语法不支持 老版本才有password
-- 新版本的修改密码 正确
update user set authentication_string = password("abc123") where user = 'andy';
-- 修改完密码以后 要刷新下数据库,否则密码修改不生效
flush privileges;
删除用户 千万要注意 删除用户的时候一定不能根据账号来删 一定要根据host+user来删
在删除用户之前,最好先查询下有哪些用户
select host,user from user;
drop user 'andy'@'%';
用户授权:
grant 权限 on 数据库名.表名(数据库名.)to '账号'@'ip'
权限:select insert delete update create drop... 要授予所有权限 all
撤销权限:
remove 权限 on
数据库名.表名(数据库名.)from '账号'@'ip'
查看当前用户的权限
show grants;
查看某个用户的权限
show grants for '用户名'@"ip"
select host,user from user;
show grants;
-- USAGE 表示没有任何权限 ALL 所有权限
show grants for 'andy'@'localhost';
grant all on db.* to 'andy'@'localhost';
-- 最好是flush privileges;
flush privileges;
-- 可以在创建用户的同时授权
grant select,insert on db.* to 'mike'@'localhost' identified by '123456';
select host,user from user;
-- 最好是flush privileges;
flush privileges;