MySQL中授权(grant)和撤销授权(revoke)
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 tables on 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 show view on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 存储过程、函数权限:
- grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
- grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
- grant execute on testdb.* to developer@'192.168.0.%';
三、grant 普通 DBA 管理某个 MySQL 数据库的权限
- grant all privileges on testdb to 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 中的所有数据库
2. grant 作用在单个数据库上:
- grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。
3. grant 作用在单个数据表上:
- grant select, insert, update, delete on testdb.orders to 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';
4. grant 作用在表中的列上:
- grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存储过程、函数上:
- grant execute on procedure testdb.pr_add to 'dba'@'localhost'
- grant execute on function testdb.fn_add to '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表指定列级权限。这里指定的权限适用于一个表的特定列。
MySQL中授权(grant)和撤销授权(revoke)相关推荐
- revoke mysql_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解
MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...
- mysql revoke 授权_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解
MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...
- mysql revoke 授权,MySQL授权(grant)和撤销授权(revoke)的简单示例
这篇文章主要为大家详细介绍了MySQL授权(grant)和撤销授权(revoke)的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 创建 ...
- linux mysql revoke_mysql中授权(grant)和撤销授权(revoke)等命令的用法详解
MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器 授权->确定用户是否拥有足够的权限执行查询请求等. 如果认证不成功的话,哪么授权肯定是无法进行的. revo ...
- mysql中如何删除空记录表_mysql删除表中的记录
大家都知道,在MySQL中删除一个表中的记录有两种方法,一种是DELETE FROM TABLENAME WHERE... , 还有一种是TRUNCATE TABLE TABLENAME. DELET ...
- SQL中GRANT(分配权限)和REVOKE(回收权限)向用户授权或取消授权
1.Grant可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户. GRANT <权限> ON <对象类型 > < 对象名> TO <用户 ...
- MySQL中用户授权/删除授权的方法
用户授权方法 你可以通过发出GRANT语句增加新用户: 代码如下 复制代码 shell> mysql --user=root mysql mysql> GRANT ALL PRIVILE ...
- mysql取消权限设置_mysql用户授权与权限撤销
mysql用户授权与权限撤销 实验练习: 1.允许root从192.168.4.0/24网段访问,对所有库/表有完全控制权限,需要验证的密码为xujunxian. 2.建立一个管理账号dba007,对 ...
- mysql grant 主机名_MySQL GRANT:用户授权
授权就是为某个用户赋予某些权限.例如,可以为新建的用户赋予查询所有数据库和表的权限.MySQL 提供了 GRANT 语句来为用户设置权限. 在 MySQL 中,拥有 GRANT 权限的用户才可以执行 ...
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引...
一.TCL事务控制语言 ###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. ...
最新文章
- C# redis 分布式session存储
- Sql获取表信息(包括结构及字段说明)
- 用decimal模块增加python的浮点数精度
- 如何处理CRM_ORGMAN 300 error message
- python统计分析--2.预分析:异常值、缺失值处理
- h5文字垂直居中_CSS居中的常用方式以及优缺点
- 货拉拉回应寻求5亿美元融资传言:持续关注资本市场 无具体上市时间表
- C++ 操作sqlite
- java设计模式工厂模式_Java中的复合设计模式
- python 视频转场_Python 带你高效创作短视频,视频创作秀到飞起!!!
- C++实现 模糊综合评价法
- 树莓派GPIO引脚介绍
- Java微服务架构图(仅供参考,不一定适用)
- Creator+微信小游戏:(3)微信openID获取(https、wss问题)
- python-opencv标定相机内参(针孔+鱼目)
- 记一次Python爬取某网站公众号二维码的过程
- 书舟计划丨国鸿公益amp;MINI书箱漂流乡村公益行 为爱启程
- 视差:disparity与UV-视差:UV-disparity
- P68-70 王者荣耀
- linux gif录制工具,Linux下的GIF录制
热门文章
- eAccelerator性能测试
- 戴尔vStart:加快虚拟化,并马上应用戴尔私有云
- 一个本科毕业生的Java学习之路
- Unity AssetBundle 资源(纹理,网格,动画,字体,LightMap,音频等)使用 优化
- html语言标记说明,HTML中注释标签的使用方法
- js foreach用法_36 个JS 面试题为你助力金九银十(面试必读)
- python 抓取页面内容_用Python程序抓取网页的HTML信息的一个小实例
- UpdateProgress使用,出不来特效问题小结
- 网页端实时音视频服务架构与实践
- Pandas DataFrame 函数应用和映射