用户创建
创建用户
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;