添加用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
删除用户
DROP USER '用户名'@'主机名';
修改用户密码
SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
查询用户
USE mysql;
SELECT * FROM USER;
通配符
-- 添加用户 lisi , 密码 lisi
CREATE USER 'lisi'@'localhost' IDENTIFIED BY 'lisi';
-- 查询用户
USE mysql; -- 首先切换到 mysql 数据库
SELECT * FROM USER; -- 查询当前数据库用户表,可看到 lisi 创建成功
-- 修改用户密码,在修改前,可通过命令框形式用 lisi 用户登录MySQL
SET PASSWORD FOR 'lisi'@'localhost' = PASSWORD('123');
-- 删除 lisi 用户
DROP USER 'lisi'@'localhost';
-- 查询用户
USE mysql; -- 首先切换到 mysql 数据库
SELECT * FROM USER; -- 查询当前数据库用户表,可看到 lisi 删除成功
-- 添加用户 heng ,密码 heng 在所有主机使用
CREATE USER 'heng'@'%' IDENTIFIED BY 'heng';
查询权限
-- 显示此主机此用户的权限
SHOW GRANTS FOR '用户名'@'主机名';
授予权限
-- 授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
撤销权限
-- 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
-- 显示 root 用户权限
SHOW GRANTS FOR 'root'@'localhost';
-- 显示 lisi 用户权限
SHOW GRANTS FOR 'lisi'@'localhost';
-- 显示 heng 用户权限
SHOW GRANTS FOR 'heng'@'%';
-- 授予 lisi 更新权限
GRANT UPDATE ON *.* TO 'lisi'@'localhost';
SHOW GRANTS FOR 'lisi'@'localhost';
-- 授予 heng 所有权限
GRANT ALL ON *.* TO 'heng'@'%';
SHOW GRANTS FOR 'heng'@'%';
-- 撤销 heng 用户所有权限
REVOKE ALL ON *.* FROM 'heng'@'%';
SHOW GRANTS FOR 'heng'@'%';
-- 撤销 lisi 用户更新权限
REVOKE UPDATE ON *.* FROM 'lisi'@'localhost';
SHOW GRANTS FOR 'lisi'@'localhost';
-- 删除 lisi heng 用户
DROP USER 'lisi'@'localhost';
DROP USER 'heng'@'%';
SELECT * FROM USER;
这里 *.* 代表,所有数据库的所有数据表
权限关键字 | 权限的作用 |
---|---|
SELECT | 允许用户查询数据库中的数据 |
INSERT | 允许用户向数据库中插入新的数据 |
UPDATE | 允许用户修改数据库中现有的数据 |
DELETE | 允许用户从数据库中删除数据 |
CREATE | 允许用户创建新的数据库、表、索引等对象 |
DROP | 允许用户删除数据库、表、索引等对象 |
GRANT OPTION | 允许用户将自己拥有的权限授予其他用户 |
REFERENCES | 允许用户在表中创建外键约束 |
INDEX | 允许用户创建索引 |
ALTER | 允许用户修改表的结构 |
CREATE TEMPORARY TABLES | 允许用户创建临时表 |
LOCK TABLES | 允许用户锁定表 |
EXECUTE | 允许用户执行存储过程 |
CREATE VIEW | 允许用户创建视图 |
SHOW VIEW | 允许用户查看视图的定义 |
CREATE ROUTINE | 允许用户创建存储过程和函数 |
ALTER ROUTINE | 允许用户修改存储过程和函数 |
EVENT | 允许用户创建、修改、删除事件 |
TRIGGER | 允许用户创建触发器 |