注意,以下命令均在数据库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';