mysql授权和回收

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

mysql跟其他数据库一样可以为不同的用户分配不同的权限

基本的操作使用的是SQL中的Grant(分配权限)和Revoke(回收权限

一、关于Grant

Grant可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户

<a href="http://www.linuxso.com/command/" target="_blank"><span style="text-decoration: underline;">命令</span></a>格式

grant 权限 on 数据库名.表名 to 用户名@登陆方式 href="http://www.linuxso.com/command/id.html" target="_blank"><span style="text-decoration: underline;">id</span></a>entified by 'password1'

grant select,insert,up<a href="http://www.linuxso.com/command/date.html" target="_blank"><span style="text-decoration: underline;">date</span></a>,delete on auth.* to user1@localhost identified by 'password'

权    限:select,insert,update,delete,drop,ind<a href="http://www.linuxso.com/command/ex.html" target="_blank"><span style="text-decoration: underline;">ex</span></a>,all,privileges(表示赋予用户全部权限跟all一样)
数据库  :当数据库名称.表名称被*.*代替,表示用户拥有操作mysql上所有数据库所有表的权限        
登陆方式:即用户地址,可以是localhost,也可以是ip地址、机器名字、域名.也可以用'%'表示从任何地址连接
'password':可以为空,但是为空这表示只能从本地登陆,建议不能为空</p>
范例1:
授权数据库用户tom从本机访问MySQL服务器并拥有对auth数据库中所有表的完全权限
mysql&gt; grant all on auth.* TO tom@localhost identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql&gt; grant all on auth.* TO tom@'localhost' identified by "123";
小结:使用引号或双引号没有任何区别,主要是用于区别字符和命令
范例2:
授权数据库用户john从10.0.0.0/8 网络中连接到MySQL服务器,对auth数据库中所有表拥有完全权限
mysql&gt; grant all on auth.* to john@'10.0.0.0/8' identified by '123';
Query OK, 0 rows affected (0.00 sec)
<p>mysql&gt; grant all on auth.* TO tom@192.168.1.1 identified by '123';
Query OK, 0 rows affected (0.00 sec)
                        
mysql&gt; grant all privileges on *.* to 123ks@localhost identified by '123456';
Query OK, 0 rows affected (0.00 sec)</p>
小结:如果是指定了一个网段或网络范围的话,网段或网络范围需要加引号

二、关于Revoke
revoke的作用则是回收授于用户的权限
命令格式为:
revoke 权限 on 数据库名.表名 from 用户名@登陆方式;
范例3:
撤销用户tom从本机访问数据库auth的所有权限
mysql&gt; revoke all on auth.* from tom@'localhost';

Query OK, 0 rows affected (0.00 sec)

tom@*:*即登陆方式,有时候可能撤销的不是本地用户,要根据需要撤销

范例4:
撤销用户tom从任意地址访问数据库auth的所有权限

mysql&gt; revoke all on auth.* from tom@'%';

Query OK, 0 rows affected (0.00 sec)
范例5:
查看tom用户从本机连接是的权限
mysql&gt; show grants for tom@localhost;

范例6:
查看数据库auth中所有授权的用户

mysql&gt; select host,user,db from mysql.db where db='auth'; 这里没有使用use mysql 效果是跨库查表
范例7:
查看当前登陆用户的权限
mysql&gt; show grants;

范例8:

删除用户123cs@localhost
delete from mysql.user where user='123cs';
删除用户后使用show grant 查看该用户会发现能看到此用户的权限,那是因为并没有撤销他的权限
在MySQL中,用户信息存放在mysql.User中
灵活使用权限赋予和撤销,可以加深对SQL中的权限参数的理解,初学者不放试着多多练习,有助于在SQL上的理解
 


本文转自    geekwolf   51CTO博客,原文链接:http://blog.51cto.com/linuxgeek/997995

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
canal
MySQL8.0创建新用户并授权
MySQL8.0创建新用户并授权
28 1
MySQL8.0创建新用户并授权
|
7月前
|
存储 安全 关系型数据库
深入理解MySQL数据库存储引擎及数据授权
深入理解MySQL数据库存储引擎及数据授权
77 0
|
5月前
|
Oracle 关系型数据库 MySQL
oceanbase在MySQL语法兼容模式下,在授权语法、行为方面 是否与 开源MySQL完全一致 ?
oceanbase在MySQL语法兼容模式下,在授权语法、行为方面 是否与 开源MySQL完全一致 ?
107 2
|
6月前
|
关系型数据库 MySQL
Mysql 8.0创建用户并授权
Mysql 8.0创建用户并授权
|
6月前
|
存储 关系型数据库 MySQL
【MySql】入门,存储引擎,授权----保姆级别教学
【MySql】入门,存储引擎,授权----保姆级别教学
49 0
|
7月前
|
SQL 存储 关系型数据库
MySQL学习笔记-如何有效的回收表空间
MySQL学习笔记-如何有效的回收表空间
107 0
|
8月前
|
存储 小程序 前端开发
uniapp+node.js+mysql前后端微信小程序授权登录
uniapp+node.js+mysql前后端微信小程序授权登录
111 0
|
10月前
|
关系型数据库 MySQL 数据库
mysql权限管理授权
mysql权限管理授权
116 0
|
12月前
|
关系型数据库 MySQL 数据库
MySQL部分权限回收功能(Partial Revokes)的使用---发表在爱可生开源社区
MySQL数据库对于对象的操作级别分为:全局、数据库、表、字段等。粒度从粗到细。如果粗的粒度的权限满足了,将不再检验细粒度的级别,这种验证方式有的时候不方便,例如需要把100个数据库中除了某一个数据库外的访问权限赋予某个用户
|
12月前
|
存储 关系型数据库 MySQL
关于MySQL账号授权和回收的那点“破事”!
本篇带领对用户的授权和回收似懂非懂的朋友进行简单剖析,希望能起到抛砖引玉的效果。放弃前戏,直奔主题!!!
148 0