MySQL 赋予用户权限命令的简单格式可概括为:

[sql] view plaincopy print?
  1. grant 权限 on 数据库对象 to 用户

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

[sql] view plaincopy print?
  1. grant select on testdb.* to common_user@'%'
  2. grant insert on testdb.* to common_user@'%'
  3. grant update on testdb.* to common_user@'%'
  4. grant delete on testdb.* to common_user@'%'

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

[sql] view plaincopy print?
  1. grant select, insert, update, delete on testdb.* to common_user@'%'

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

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

[sql] view plaincopy print?
  1. grant create on testdb.* to developer@'192.168.0.%';
  2. grant alter  on testdb.* to developer@'192.168.0.%';
  3. grant drop   on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 外键权限:

[sql] view plaincopy print?
  1. grant references on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 临时表权限:

[sql] view plaincopy print?
  1. grant create temporary tables on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 索引权限:

[sql] view plaincopy print?
  1. grant index on testdb.* to developer@'192.168.0.%';

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

[sql] view plaincopy print?
  1. grant create view on testdb.* to developer@'192.168.0.%';
  2. grant show   view on testdb.* to developer@'192.168.0.%';

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

[sql] view plaincopy print?
  1. grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
  2. grant alter  routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
  3. grant execute        on testdb.* to developer@'192.168.0.%';

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

[sql] view plaincopy print?
  1. grant all privileges on testdb to dba@'localhost'

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

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

[sql] view plaincopy print?
  1. grant all on *.* to dba@'localhost'

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

1. grant 作用在整个 MySQL 服务器上:

[sql] view plaincopy print?
  1. grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。
  2. grant all    on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库

2. grant 作用在单个数据库上:

[sql] view plaincopy print?
  1. grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。

3. grant 作用在单个数据表上:

[sql] view plaincopy print?
  1. grant select, insert, update, delete on testdb.orders to dba@localhost;

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

[sql] view plaincopy print?
  1. grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';
  2. grant select on smp.mo_sms to mo_user@'%' identified by '123345';

4. grant 作用在表中的列上:

[sql] view plaincopy print?
  1. grant select(id, se, rank) on testdb.apache_log to dba@localhost;

5. grant 作用在存储过程、函数上:

[sql] view plaincopy print?
  1. grant execute on procedure testdb.pr_add to 'dba'@'localhost'
  2. grant execute on function testdb.fn_add to 'dba'@'localhost'

六、查看 MySQL 用户权限

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

[sql] view plaincopy print?
  1. show grants;

查看其他 MySQL 用户权限:

[sql] view plaincopy print?
  1. show grants for dba@localhost;

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

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

[sql] view plaincopy print?
  1. grant  all on *.* to   dba@localhost;
  2. revoke all on *.* from dba@localhost;

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

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

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

[sql] view plaincopy print?
  1. 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表指定列级权限。这里指定的权限适用于一个表的特定列。

MySQL中授权(grant)和撤销授权(revoke)相关推荐

  1. revoke mysql_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...

  2. mysql revoke 授权_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...

  3. mysql revoke 授权,MySQL授权(grant)和撤销授权(revoke)的简单示例

    这篇文章主要为大家详细介绍了MySQL授权(grant)和撤销授权(revoke)的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 创建 ...

  4. linux mysql revoke_mysql中授权(grant)和撤销授权(revoke)等命令的用法详解

    MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器 授权->确定用户是否拥有足够的权限执行查询请求等. 如果认证不成功的话,哪么授权肯定是无法进行的. revo ...

  5. mysql中如何删除空记录表_mysql删除表中的记录

    大家都知道,在MySQL中删除一个表中的记录有两种方法,一种是DELETE FROM TABLENAME WHERE... , 还有一种是TRUNCATE TABLE TABLENAME. DELET ...

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

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

  7. MySQL中用户授权/删除授权的方法

    用户授权方法 你可以通过发出GRANT语句增加新用户:  代码如下 复制代码 shell> mysql --user=root mysql mysql> GRANT ALL PRIVILE ...

  8. mysql取消权限设置_mysql用户授权与权限撤销

    mysql用户授权与权限撤销 实验练习: 1.允许root从192.168.4.0/24网段访问,对所有库/表有完全控制权限,需要验证的密码为xujunxian. 2.建立一个管理账号dba007,对 ...

  9. mysql grant 主机名_MySQL GRANT:用户授权

    授权就是为某个用户赋予某些权限.例如,可以为新建的用户赋予查询所有数据库和表的权限.MySQL 提供了 GRANT 语句来为用户设置权限. 在 MySQL 中,拥有 GRANT 权限的用户才可以执行 ...

  10. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引...

    一.TCL事务控制语言 ###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. ...

最新文章

  1. C# redis 分布式session存储
  2. Sql获取表信息(包括结构及字段说明)
  3. 用decimal模块增加python的浮点数精度
  4. 如何处理CRM_ORGMAN 300 error message
  5. python统计分析--2.预分析:异常值、缺失值处理
  6. h5文字垂直居中_CSS居中的常用方式以及优缺点
  7. 货拉拉回应寻求5亿美元融资传言:持续关注资本市场 无具体上市时间表
  8. C++ 操作sqlite
  9. java设计模式工厂模式_Java中的复合设计模式
  10. python 视频转场_Python 带你高效创作短视频,视频创作秀到飞起!!!
  11. C++实现 模糊综合评价法
  12. 树莓派GPIO引脚介绍
  13. Java微服务架构图(仅供参考,不一定适用)
  14. Creator+微信小游戏:(3)微信openID获取(https、wss问题)
  15. python-opencv标定相机内参(针孔+鱼目)
  16. 记一次Python爬取某网站公众号二维码的过程
  17. 书舟计划丨国鸿公益amp;MINI书箱漂流乡村公益行 为爱启程
  18. 视差:disparity与UV-视差:UV-disparity
  19. P68-70 王者荣耀
  20. linux gif录制工具,Linux下的GIF录制

热门文章

  1. eAccelerator性能测试
  2. 戴尔vStart:加快虚拟化,并马上应用戴尔私有云
  3. 一个本科毕业生的Java学习之路
  4. Unity AssetBundle 资源(纹理,网格,动画,字体,LightMap,音频等)使用 优化
  5. html语言标记说明,HTML中注释标签的使用方法
  6. js foreach用法_36 个JS 面试题为你助力金九银十(面试必读)
  7. python 抓取页面内容_用Python程序抓取网页的HTML信息的一个小实例
  8. UpdateProgress使用,出不来特效问题小结
  9. 网页端实时音视频服务架构与实践
  10. Pandas DataFrame 函数应用和映射