Mysql用户管理

用户创建

创建用户

CREATE USER username IDENTIFIED BY 'password';
create user username identified by "password"

创建用户时也可以指定host

create user username@host identified by "password"

用户账户包括username和host两部分, 后者表示该用户被允许从何地接入. 默认的是localhost 这之中可以使用%来代表任何字符, 比如10.0.0.%或者%.wengang.top

修改密码: 修改密码需要用到sql内置的函数password

-- 进入mysql库
update user set Password=password("ganggang") where User="ganggang";
-- 或者
set password for tom1=password('oracle');

 普通用户修改自己的密码

set password=password("tom1");

删除用户

DROP USER username@localhost;
drop user username@localhost;

权限分配

mysql使用grant命令对账户进行授权,grant命令常见格式如下, 其中数据库表名都允许占位

grant 权限 on 数据库.表名 to 账户@主机名            对特定数据库中的特定表授权
grant 权限 on 数据库.* to 账户@主机名              对特定数据库中的所有表给与授权
grant 权限1,权限2,权限3 on *.* to 账户@主机名      对所有库中的所有表给与多个授权
grant all privileges on *.* to 账户@主机名      对所有库和所有表授权所有权限

权限列表

ALTER: 修改表和索引。
CREATE: 创建数据库和表。
DELETE: 删除表中已有的记录。
DROP: 抛弃(删除)数据库和表。
INDEX: 创建或抛弃索引。
INSERT: 向表中插入新行。
REFERENCE: 未用。
SELECT: 检索表中的记录。
UPDATE: 修改现存表记录。
FILE: 读或写服务器上的文件。
PROCESS: 查看服务器中执行的线程信息或杀死线程。
RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
SHUTDOWN: 关闭服务器。
ALL: 所有权限,ALL PRIVILEGES同义词。
USAGE: 特殊的 "无权限" 权限。

删除权限

EVOKE 权限 ON *.* FROM 'username'@'localhost';
evoke 权限 on *.* from 'username'@'localhost';

另外每当调整权限后,通常需要执行以下语句刷新权限:

FLUSH PRIVILEGES;
flush privileges;

检查用户权限

show grants for user@host;

  

原文地址:https://www.cnblogs.com/wwg945/p/10075481.html