创建用户
!!!创建用户需要切换root用户
命令
CREATE USER 'select_user'@'%' IDENTIFIED BY '123456';
此时一个名为select_user的用户就创建成功,密码为123456
登陆
使用该用户登陆
mysql -u select_user -p
输入密码123456登陆
查看用户的权限
show databases;
此用户只有mysql默认数据库的访问权限
设置权限
!!!设置权限需要切换root用户
语法
GRANT 权限 ON 数据库名.表名称 TO 'username'@'ip';
权限说明
权限名 | 说明 |
INSERT | 表中插入 |
DELETE | 表中删除 |
UPDATE | 表中修改更新 |
SELECT | 表中查询 |
ALTER | 修改表和索引 |
CREATE | 创建数据库和表 |
DROP | 删除数据库和表 |
INDEX | 创建或删除索引 |
REFERENCE | 外键权限 |
FILE | 读或写服务器上的文件 |
PROCESS | 查看服务器中的线程或杀死线程 |
RELOAD | 重载授权表或清空日志、缓存 |
SHUTDOWN | 关闭服务器 |
ALL | 所有权限 |
USAGE | 无权限的权限 |
权限操作
添加权限
给刚刚创建的select_user添加test库中所有表的增删改查权限
GRANT SELECT,UPDATE,DELETE,INSERT ON test.* TO 'select_user'@'%';
再次查看数据库
先切换到select_user用户,再查看
show databases;
此时切换test库,该用户就可以操作test库下的所有表
use test;
再给select_user添加ALTER权限
GRANT ALTER ON test.* TO 'select_user'@'%';
此时再查看select_user的所有权限
SHOW GRANTS FOR select_user;
此时select_user的所有权限为SELECT, INSERT, UPDATE, DELETE, ALTER;后面添加的ALTER权限是追加上去的,而不是覆盖。
撤销权限
撤销select_user的增删改权限
REVOKE UPDATE,DELETE,INSERT ON test.* FROM 'select_user'@'%';
刷新权限
FLUSH PRIVILEGES;