MySQL 赋予用户权限命令的简单格式可概括为:
grant 权限 on 数据库对象 to 用户

一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利

grant select on testdb.*to common_user@'%';
grant insert on testdb.*to common_user@'%';
grant update on testdb.*to common_user@'%';
grant delete on testdb.*to common_user@'%';

或者,用一条 MySQL 命令来替代:

grant select,insert,update,delete on testdb.*to common_user@'%';

二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数等权限

grant 创建、修改、删除 MySQL 数据表结构权限。

grant create on testdb.*to developer@'192.168.0.%';
grant alter on testdb.*to developer@'192.168.0.%';
grant drop  on testdb.*to developer@'192.168.0.%';

grant 操作 MySQL 外键权限:

grant references on testdb.*to developer@'192.168.0.%';

grant 操作 MySQL 临时表权限:

grant create temporary tableson testdb.*to developer@'192.168.0.%';

grant 操作 MySQL 索引权限:

grant index on testdb.*to developer@'192.168.0.%';

grant 操作 MySQL 视图、查看视图源代码权限:

grant create view on testdb.*to developer@'192.168.0.%';
grant showview on testdb.*to developer@'192.168.0.%';

grant 操作 MySQL 存储过程、函数权限:

grant create routineon testdb.*to developer@'192.168.0.%';
-- now, can show procedure statusgrant alter routineon testdb.*to developer@'192.168.0.%';
-- now, you can drop a proceduregrant execute on testdb.*to developer@'192.168.0.%';

三、grant 普通 DBA 管理某个 MySQL 数据库的权限

grant all privileges on testdbto dba@'localhost';

其中,关键字 “privileges” 可以省略。

四、grant 高级 DBA 管理 MySQL 中所有数据库的权限:

grant all on *.*to dba@'localhost';

五、MySQL grant 权限,分别可以作用在多个层次上

  1. grant 作用在整个 MySQL 服务器上:
grant select on *.*to dba@localhost;
-- dba 可以查询 MySQL 中所有数据库中的表。
grant all  on *.*to dba@localhost;
-- dba 可以管理 MySQL 中的所有数据库
  1. grant 作用在单个数据库上:
grant select on testdb.*to dba@localhost;
-- dba 可以查询 testdb 中的表。
  1. grant 作用在单个数据表上:
grant select,insert,update,delete on testdb.ordersto dba@localhost;

这里在给一个用户授权多张表时,可以多次执行以上语句。例如:

grant select(user_id,username)on smp.users to mo_user@'%' identified by '123345';
grant select on smp.mo_sms to mo_user@'%' identified by '123345';
  1. grant 作用在表中的列上:
grant select(id, se, rank)on testdb.apache_log to dba@localhost;
  1. grant 作用在存储过程、函数上:
grant execute on procedure testdb.pr_add to 'dba'@'localhost';
grant execute on function testdb.fn_addto 'dba'@'localhost';

六、查看 MySQL 用户权限

查看当前用户(自己)权限:

show grants;

查看其他 MySQL 用户权限:

show grants for dba@localhost;

七、撤销已经赋予给 MySQL 用户权限的权限。

revoke(废除、撤销)跟 grant (授予)的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

grant all on *.*to  dba@localhost;
revoke all on *.*from dba@localhost;

八、MySQL grant、revoke 用户权限注意事项

  1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

  2. 如果想让用户具有授权的权利,也可以将这些权限 grant 给其他用户,需要选项 “grant option“

grant select on testdb.* to dba@localhost with grant option;

这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。

补充:mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。

授权表的内容有如下用途:

user表

user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。

db表

db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。

host表

host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。

tables_priv表tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。

columns_priv表columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列。

参考:https://blog.csdn.net/weixin_36360005/article/details/113204326

sql中grant授权语句revoke撤销语句相关推荐

  1. SQL中GRANT(分配权限)和REVOKE(回收权限)向用户授权或取消授权

    1.Grant可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户. GRANT <权限> ON <对象类型 > < 对象名> TO <用户 ...

  2. SQL中的in、not in语句遇到null时的坑点

    背景介绍 前两天做问题排查的时候,写了一条sql,但是并没有如期地查到数据(确实是有数据的),SQL如下: SELECT tar.*FROM tb_account_relation tarWHERE ...

  3. SQL中三种插入数据的语句

    insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错: replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引的话, ...

  4. SQL中grant的用法

    GRANT 名称 GRANT - 赋予一个用户,一个组或所有用户访问权限 语法 GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROU ...

  5. mysql根据id删除数据sql语句_删除数据sql-sql数据库删除数据-sql中实现数据删除的语句是...

    怎样用sql语言删除一行数据 在SQL数据库中删除记录一般使用Delete语句,下面就将为您介绍SQL中用于删除记录的DELETE语句的语法 DELETE FROM 表名称 WHERE 列名称 = 值 ...

  6. 执行sql语句_SQL查询语句的执行顺序解析

    SQL语句执行顺序 结合上图,整理出如下伪SQL查询语句. 从这个顺序中我们可以发现,所有的查询语句都是从 FROM 开始执行的.在实际执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将 ...

  7. SQL—授权grant与回收revoke

    授权grant grant语句:向用户授予权限 grant一般格式: grant <权限> [,<权限>]- on <对象类型 > <对象名> [,&l ...

  8. 数据库学习day_02:表格相关sql语句 / 表格数据相关sql语句 / sql中的数据类型 / 导入外部sql文件 / 去重.是否为null.and与or.in.[x,y]

    1.表相关的SQL语句 操作表相关的SQL 必须先使用某个数据库 create database mydb1; show create database mydb1; use mydb1; 如果默认不 ...

  9. SQL中的CASE WHEN语句

    有这样一道面试题: 一张表数据如下 1900-1-1 胜 1900-1-1 胜 1900-1-1 负 1900-1-2 胜 1900-1-2 胜 写出一条SQL语句,使检索结果如下: 胜 负 1900 ...

最新文章

  1. 用Python在Windows或Linux下批量删除文件夹中指定的文件
  2. Python基础练习题,你会吗?
  3. Docker环境安装Kafka
  4. 如何使用 controllerExtensions 给 SAP Fiori Elements List Report 的表格注册事件响应函数
  5. [小技巧][JAVA][转换]字符数组char[]与字符串String之间互相转换
  6. spring mvc + ajax上传文件,页面局部刷新
  7. JAVA 的StringBuffer类
  8. CSS3_线性渐变(linear-gradient)+ 盒子阴影(box-shadow)
  9. 机器学习笔记0_学习资料整理
  10. 小波变换和motion信号处理(二)
  11. 歌华链刷 openwrt 记录
  12. spring mybatis 各版本源码下载地址
  13. 针式打印机打印发虚_针式打印机打印输出字符模糊不清晰的原因有哪些
  14. XPS格式文件如何编辑?
  15. 优化数据库的八种经典方式
  16. 腾讯云如何设置二级域名?
  17. thinkpad t480s黑苹果蓝牙使用
  18. 如何去做App自动化以及注意事项
  19. 图的遍历——深度优先搜索和广度(宽度)优先搜索(含例题)
  20. 最近国外LEAD收款情况

热门文章

  1. html游戏是什么意思,HTML5究竟是个什么鬼?
  2. 最全ctypes用法总结
  3. 华为鸿蒙os系统手表,对标Apple Watch!魅族推首款智能手表,官宣接入华为鸿蒙系统...
  4. php sftp 删除,sftp常用命令是什么
  5. int、long、longlong、double范围
  6. RoIAlign源码解析
  7. Excel / PPT 办公技巧
  8. 笔记本电脑WI-FI列表无法显示出来的解决方案
  9. 编译器代码字体最佳配色_5最佳在线编译器
  10. linux 生成ub格式镜像,【分享】PetaLinux 2018.3的image.ub的生成过程