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;