mysql的用户和权限

82 阅读2分钟

mysql的用户和授权

  1. 查看用户

  2. 创建用户

  3. 修改用户

  4. 删除用户

授权:

  1. 查看用户权限

  2. 添加用户权限

  3. 删除用户权限

  4. 删除和添加的规则

-- 查看用户
 -- 切换到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;