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 '';
grant select on smp.mo_sms to mo_user@'%' identified by '';
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表指定列级权限。这里指定的权限适用于一个表的特定列。 转载请注明:http://www.cnblogs.com/fnlingnzb-learner/p/5833337.html

MySQL中授权(grant)和撤销授权(revoke的更多相关文章

  1. Mysql中如何创建、删除授权用户

    在mysql数据库下使用create user创建新用户,例如: 新创建后的用户没有任何授权.使用grant命令授权xushouwei访问数据库databaseweb下的所有表,密码为xsw12345 ...

  2. mysql5.7创建用户授权删除用户撤销授权

    一, 创建用户: 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - ...

  3. mysql授权用户,撤销用户,撤销权限基本操作

    进入mysql库 use mysql; mysql> select host,user from user; +-----------+---------------+ | host | use ...

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

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

  5. mysql授权grant

    本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删 ...

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

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

  7. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...

  8. Mysql授权GRANT ALL PRIVILEGES

    1. 改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 " ...

  9. MySql中创建用户,授权

    第一天搞MySql好多东西都不会,幸好有网络的强大资源,首先需要注意的是任何一条sql语句都是要以分号结尾的,不然很是蛋疼的 1.新建用户. //登录MYSQL @>mysql -u root  ...

随机推荐

  1. 外观模式face

    5.1 模式优点       外观模式的主要优点如下: (1) 它对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易.通过引入外观模式,客户端代码将变得很简单,与之 ...

  2. 打印N个数的循环算法和递归算法比较

    1.循环算法: void PrintN_1(int N) { int i; ; i <= N; i++) printf("%d\n", i); return; } N可以为任 ...

  3. Scrapy 设置请求头

    爬虫的过程有些网站设置反盗链,需要我们在请求头中添加下,修改settings.py文件中添加 DEFAULT_REQUEST_HEADERS = { 'Accept': 'text/html,appl ...

  4. 菜鸟如何使用hanlp做分词的过程记录

    菜鸟如何使用hanlp做分词的过程记录 最近在学习hanlp的内容,准备在节后看看有没有时间整理一波hanlp分享下,应该还是会像之前分享DKHadoop一样的方式吧.把整个学习的过程中截图在配文字的 ...

  5. curl发送post请求,统计响应时间

    curl  -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}:: ...

  6. nodejs在后台运行

    安装forever npm install forever -g 使用 forever 启动 app forever start app.js 启动app并输出日志 forever start -l ...

  7. QT使用SQLite

    在QT的widget中用tableview显示sqlite数据库表中的内容. 用QTcreator创建一个基于Widget类的窗口,再拖一个tableview到widget中,保存. 1.在widge ...

  8. <亲测>centos安装 .net core 2.1

    https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial#install .NET Tutorial - Hello W ...

  9. SpringBoot使用redis缓存List

    一.概述 最近在做性能优化,之前有一个业务是这样实现的: 1.温度报警后第三方通讯管理机直接把报警信息保存到数据库: 2.我们在数据库中添加触发器,(BEFORE INSERT)根据这条报警信息处理业 ...

  10. Qt 常用类 (4)—— QPoint

    转载:落叶知秋时 QPoint 类代表一个坐标点,实现在 QtCore 共享库中.它可以认为是一个整型的横坐标和一个整型的纵坐标的组合. 构造 QPoint 类支持以下两种构造方式: QPoint() ...