mysql权限操作
@
目录
什么是权限
限制一个用户能够做什么事情,在MySQL中,可以设置全局权限,指定数据库权限,指定表权限,指定字段权限
有哪些权限
- create:创建数据库、表或索引权限
- DROP:除数据库或表权限
- ALTER:ALTER更改表,比如添加字段、索引等
- DELETE:删除数据权限
- INDEX:索引权限
- INSERT:插入权限
- SELECT:查询权限
- UPDATE:更新权限
- CREATE VIEW:创建视图权限
- EXECUTE:执行存储过程权限
Mysql8之前
创建用户:
create user ‘用户名‘@‘localhost‘ identified by ‘密码‘;
删除用户:
DROP USER 用户名称
分配权限:
GRANT 权限 (columns) ON 数据库对象 TO 用户 IDENTIFIED BY "密码" WITH GRANT OPTION
Mysql8
MySQL8新增了角色(role)的概念,使账号权限的管理,更加灵活方便。 角色,就是一些权限的集合。然后再把角色授权给某个账户
创建角色
create role ‘app_dev‘,‘app_read‘,‘app_write‘;
查询授权情况
show grants for ‘app_dev‘;
USAGE “无权限”
就是让你这个用户可以像个用户似的登录,但是除了能看到有哪些数据库外,什么权限也没有
创建的角色也和账号一样保存在mysql.user表中
select * from mysql.user;
给角色授权
给指定角色权限
grant select,insert,update,delete on *.* to app_dev; grant select on mydb.* to app_read; grant insert,update,delete on mydb.* to app_write;
创建用户, 将权限 授予用户
- 创建用户
create user myuser2 identified with mysql_native_password by ‘myuser2‘;
- 分配角色
grant app_write to myuser2;
- 查询用户对应的角色
show grants for myuser1;
看到的是角色,并不是具体的权限
如果要查看具体的权限则需要这样执行show grants
show grants for myuser2 using app_dev
通过使用using app_dev,会将账号和角色的权限一并显示
4. 可以继续给角色添加权限
grant create on mydb.* to app_dev;
激活角色
查看当前角色
select current_role()
激活指定用户授权的所有角色
set default role all to myuser1
删除 指定权限
revoke create on sys.* from ‘角色名称‘@‘127.0.0.1‘; revoke all on sys.* from ‘app_dev‘@‘127.0.0.1‘;
删除用户
drop user ‘用户名‘@‘127.0.0.1‘;
相关推荐
CoderToy 2020-11-16
bianruifeng 2020-11-16
云中舞步 2020-11-12
暗夜之城 2020-11-11
Coder技术文摘 2020-09-29
huacuilaifa 2020-10-29
Gexrior 2020-10-22
敏敏张 2020-11-11
好记忆也需烂 2020-11-11
lpfvip00 2020-10-07
云中舞步 2020-09-11
康慧欣 2020-09-10
silencehgt 2020-09-07
幸福ITman汪文威 2020-09-05
sofia 2020-09-03
nan00zzu 2020-08-19
CHINA华军 2020-08-18
cyhgogogo 2020-08-18