MySQL - 用户及权限

2017-06-20  本文已影响0人  单刀恐惧者

创建用户

insert into mysql.user(Host,User,Password) values("localhost","test",password("123456"));
create user 'test'@'localhost' identified by '123456';
grant all privileges on db.* to 'test'@'localhost' identified by '123456';

删除用户

Delete FROM user Where User='test' and Host='localhost';

删除用户并取消权限

drop user 'test'@'localhost';

将删除user表的用户数据
将删除db表和table_priv表的权限数据

将权限授予一个已存在的用户

grant all privileges on db.* to 'test'@'localhost'

将权限授予用户
如果用户存在则更新密码,如果用户不存在则创建用户

grant all privileges on db.* to 'test'@'localhost' identified by '123456';

grant授权如果指定了数据库将在db表产生一条数据
grant授权如果指定了数据表将在table_priv产生一条数据

取消权限

revoke all privileges on *.* from 'test'@'%';

on 后面的作用范围必须小于或等于当前用户权限的作用范围
例如:
grant all privileges on dbname.* to 'test'@'localhost'
revoke select on *.* from 'test'@'%';//无效
revoke select on dbname.* from 'test'@'%';//有效
revoke select on dbname.tablename from 'test'@'%';//有效
revoke取消权限即使将全部权限取消也不会删除db表和table_priv表的权限数据

修改密码

update mysql.user set Password=password('123456') where User="test" and Host="localhost";
SET PASSWORD FOR 'test'@'localhost' = PASSWORD('123456');

查看 MySQL 用户权限

特别注意

  1. 如果需要一个空密码或者无密码的账户,必须先用Create User命令,然后通过grant来分配权限,grant只能创有密码的账户。
  2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 "with grant option"
  3. grant, revoke修改完权限以后一定要刷新服务,或者重启服务,刷新服务用:flush privileges;

host说明

127.0.0.1 - 表示本机
localhost - 表示本机*
::1 - 表示ipv6地址的127.0.0.1
% - 表示任何地址

上一篇 下一篇

猜你喜欢

热点阅读