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 '';
- 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的更多相关文章
- Mysql中如何创建、删除授权用户
在mysql数据库下使用create user创建新用户,例如: 新创建后的用户没有任何授权.使用grant命令授权xushouwei访问数据库databaseweb下的所有表,密码为xsw12345 ...
- mysql5.7创建用户授权删除用户撤销授权
一, 创建用户: 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - ...
- mysql授权用户,撤销用户,撤销权限基本操作
进入mysql库 use mysql; mysql> select host,user from user; +-----------+---------------+ | host | use ...
- MySQL中用户授权/删除授权的方法
用户授权方法 你可以通过发出GRANT语句增加新用户: 代码如下 复制代码 shell> mysql --user=root mysql mysql> GRANT ALL PRIVILE ...
- mysql授权grant
本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删 ...
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引
一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...
- Mysql授权GRANT ALL PRIVILEGES
1. 改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 " ...
- MySql中创建用户,授权
第一天搞MySql好多东西都不会,幸好有网络的强大资源,首先需要注意的是任何一条sql语句都是要以分号结尾的,不然很是蛋疼的 1.新建用户. //登录MYSQL @>mysql -u root ...
随机推荐
- .Net培训班课程体系
.Net培训 第一部分:.Net基础 .Net基础:数据类型.变量.运算符.分支结构.循环结构.方法.反编译器.递归.递归算法的非递归优化: 面向对象:异常.封装继承多态.单例模式.装饰者设计模式.t ...
- java考试感受
开学不久,我们进行了一次java程序考试.在此之前,老师要求我们在假期自学java并提前发了一个考试样卷,要求用数组编写一个学生信息管理系统并能够实现一系列的功能.由于我早早的便完成了这道题.因此对这 ...
- yaml,json,ini这三种格式用来做配置文件优缺点
适合人类编写:ini > toml > yaml > json > xml > plist可以存储的数据复杂度:xml > yaml > toml ~ jso ...
- 怎么用fiddler抓APP的包
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/liujingqiu/article/details/79387909Fiddler安装 此处略.我们 ...
- 菜鸟如何学习vue
作为一个前端菜鸟,最近开始接触和学习vue. 以前用到的是bootstrap前端框架. Bootstrap,来自 Twitter,是目前最受欢迎的前端框架. Bootstrap 是基于 HTML.CS ...
- RedHat6.5如何被windows系统远程桌面连接
一.redhat 6.5远程桌面配置 服务器端: 1.设置允许其它人查看您的远程桌面 在“系统”-“首选项”-“远程桌面”-在“允许其它人查看您的远程桌面”前打勾:在“允许其它用户控制您的桌面”打勾 ...
- 修改postfix smtp端口,防止公网扫描浪费你的服务器流量
邮件服务器的默认发送邮件端口是25,一些ISP会封锁25端口防止垃圾邮件的发送,这样就导致不能使用Foxmail.outlook等邮件客户端发送邮件.修改默认smtp端口就可以解决这个问题.下面的方法 ...
- sql语句事务
set xact_abort on begin tran ... commit tran
- Oracle事务隔离级别处理差异
Oracle事务隔离是事务读操作不同程度的数据隔离,分为READ_UNCOMMITTED.READ_COMMITTED(默认).SERIALIZABLE. Oracle事务隔离级别SERIALIZAB ...
- PAT 乙级 1043 输出PATest(20) C++版
1043. 输出PATest(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个长度不超过10000 ...