开发者社区> 技术小牛人> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mysql授权和回收

简介:
+关注继续查看

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何在Ubuntu上安装Apache,MySQL,PHP,Nginx,HAProxy,以及如何在docker上安装LAMP
如何在Ubuntu上安装Apache,MySQL,PHP,Nginx,HAProxy,以及如何在docker上安装LAMP   在Ubuntu上安装LAMP: https://help.
2102 0
CentOS 7 安装MySQL
由于MySQL被Oracle收购以后,CentOS默认yum库内置的数据库由原来的MySQL改为了MariaDB。  为了安装MySQL,我们需要将MySQL官方的Repo加到CentOS的repo里面。
821 0
安装MySQL Enterprise Monitor
    MySQL Enterprise Monitor是专门为MySQL数据库而设计的一款企业级监控,能非常好地与MySQL各方面特性相结合,包括:MySQL的关键性能指标、主机、磁盘、备份、新特性相关以及各种场景下的架构配置,并支持从单节点到海量节点部署的环境。
1080 0
linux 设置代理 安装jdk mysql tomcat redis hadoop
 1.修改linux用户名和密码 前提进入root用户  原用户名 XX,改成用户名 YY         执行 usermod -l YY XX  修改用户 YY 的密码,如果你在root权限下 执行 passwd YY  useradd -d /home/usr/baoyou -m...
1256 0
多实例mysql的安装和管理
多实例mysql的安装和管理 http://blog.chinaunix.net/uid-20639775-id-3438560.html mysql的多实例有两种方式可以实现,两种方式各有利弊。第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便。
741 0
MySQL 5.6.21下载安装之安装篇(二)
  mysql安装   1.1 Linux之下MySQL安装的三种方案的比较 具体内容参考这篇blog: http://blog.
1134 0
linux上mysql安装与卸载
以下步骤运行环境是centos6.5   1、查找以前是否装有mysql命令:rpm -qa|grep -i mysql2、删除mysql删除命令:rpm -e --nodeps 包名3、删除老版本mysql的开发头文件和库命令:rm -rf /usr/lib/mysql4.
917 0
openwrt挂载U盘和安装python和mysql
最近在openwrt上安装python时,老出现/overlay空间不足的错误,如下图所示: 不过用命令查看时,其空间确实挺小的: 看了这篇文章之后,想到了用闪存卡来扩容。由于我的系统内部已经有了相关usb驱动模块,所以一插上闪存卡就能识别了 基本想法很简单,先格式化,再挂载,再配置opkg.conf使软件安装到其上。 格式化 挂载到/mnt/usb目录
3339 0
mysql:yum安装以及开启远程连接权限
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/41343939 前言:如果你的mysql服务需要安装在centos上,centos一般情况下都可以通过yum命令进行软件的安装。
752 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
MySQL 5.7让优化更轻松
立即下载
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL
立即下载