mysql8创建用户、删除用户、授权、取消授权
原创 helloworld 发表于:2018-06-14 14:14:09
  阅读 :3247   收藏   编辑

注意,以下命令均在数据库mysql中操作

use mysql;

mysql有密码设置规范,这里修改仅密码长度为4位,仅本次登录有效

set global validate_password.policy=0; 
set global validate_password.length=4;

创建用户

格式 

CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';

WITH mysql_native_password 可选,但不支持低版本的mysqlclient连接

将出现:1251--Client does not support authentication protocol requested by server

例子

创建test用户在IP:192.168.204.1上登录,不限制ip:%,密码为:123456

CREATE USER 'test'@'192.168.204.1' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

更新用户密码

ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';

例子

ALTER USER 'test'@'192.168.204.1' IDENTIFIED WITH mysql_native_password BY '123456';    
FLUSH PRIVILEGES;

删除用户

DROP USER 'username'@'host';

例子

DROP USER 'test'@'192.168.204.1';

授权

GRANT privileges ON databasename.tablename TO 'username'@'host' [WITH GRANT OPTION];
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
WITH GRANT OPTION 该用户是否可授权

例子

GRANT select,insert,update,delete,create,drop ON mysql.user TO 'test'@'192.168.204.1';
GRANT ALL ON *.* TO 'test'@'192.168.204.1';

授权信息

SHOW GRANTS FOR 'test'@'192.168.204.1'

撤销权限

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

注意用什么的语句授权就用什么样的语句收回权限,否则可能无法撤销权限

例子

REVOKE select,insert,update,delete,create,drop ON mysql.user FROM 'test'@'192.168.204.1';