mysql权限

从3.22.11版本开始,MySQL提供了简单的方法来管理用户的访问。使用MySQL提供的非标准的命令GRANT和REVOKE,你可以建立用户并赋予其相应的权限,而不必关心它在前面提到的五个表中的存储形式。

使用GRANT
GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:
mysql> GRANT ON
-> TO [IDENTIFIED BY ""]
-> [WITH GRANT OPTION];


正如你看到的,在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。
是一个用逗号分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型:
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
CREATE: 建立新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 建立或删除索引。
INSERT: 增加表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
全局管理权限:
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。
这些权限所涉及到的MySQL的特征,其中的一些我们至今还没看到,而其中的绝大部分是你所熟悉的。
定义了这些权限所作用的区域。*.*意味着权限对所有数据库和数据表有效。dbName.*意味着对名为dbName的数据库中的所有数据表有效。dbName.tblName意味着仅对名为dbName中的名为tblName的数据表有效。你甚至还可以通过在赋予的权限后面使用圆括号中的数据列的列表以指定权限仅对这些列有效(在后面我们将看到这样的例子)。
指定可以应用这些权限的用户。在MySQL中,一个用户通过它登录的用户名和用户使用的计算机的主机名/IP地址来指定。这两个值都可以使用%通配符(例如kevin@%将允许使用用户名kevin从任何机器上登录以享有你指定的权限)。
指定了用户连接MySQL服务所用的口令。它被用方括号括起,说明IDENTIFIED BY ""在GRANT命令中是可选项。这里指定的口令会取代用户原来的密码。如果没有为一个新用户指定口令,当他进行连接时就不需要口令。

这个命令中可选的WITH GRANT OPTION部分指定了用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。请小心使用这项功能--虽然这个问题可能不是那么明显!例如,两个都拥有这个功能的用户可能会相互共享他们的权限,这也许不是你当初想看到的。

让我们来看两个例子。建立一个名为dbmanager的用户,他可以使用口令managedb从server.host.net连接MySQL,并仅仅可以访问名为db的数据库的全部内容(并可以将此权限赋予其他用户),这可以使用下面的GRANT命令:
mysql> GRANT ALL ON db.*
-> TO dbmanager@server.host.net
-> IDENTIFIED BY "managedb"
-> WITH GRANT OPTION;


现在改变这个用户的口令为funkychicken,命令格式如下:
mysql> GRANT USAGE ON *.*
-> TO dbmanager@server.host.net
-> IDENTIFIED BY "funkychicken";
请注意我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录),但是用户已经存在的权限不会被改变。

现在让我们建立一个新的名为jessica的用户,他可以从host.net域的任意机器连接到MySQL。他可以更新数据库中用户的姓名和email地址,但是不需要查阅其它数据库的信息。也就是说他对db数据库具有只读的权限(例如,SELECT),但是他可以对Users表的name列和email列执行UPDATE操作。命令如下:
mysql> GRANT SELECT ON db.*
-> TO jessica@%.host.net
-> IDENTIFIED BY "jessrules";
mysql> GRANT UPDATE (name,email) ON db.Users
-> TO jessica@%.host.net;


请注意在第一个命令中我们在指定Jessica可以用来连接的主机名时使用了%(通配符)符号。此外,我们也没有给他向其他用户传递他的权限的能力,因为我们在命令的最后没有带上WITH GRANT OPTION。第二个命令示范了如何通过在赋予的权限后面的圆括号中用逗号分隔的列的列表对特定的数据列赋予权限。

使用REVOKE
正如你所预期的那样,REVOKE命令是用来去除一个用户以前被赋予的权限的。命令的语法如下:
mysql> REVOKE [()]
-> ON FROM ;


这个命令中各部分的功能和在上面的GRANT命令中时一样。要去除Jessica的合作者的DROP权限(例如,如果他经常错误地删除数据库和表),你可以使用下面的命令:
mysql> REVOKE DROP ON *.* FROM idiot@%.host.net;

去除一个用户的登录权限大概是唯一不能使用REVOKE的。REVOKE ALL ON *.*会去除用户的所有权限,但是他还可以登录,要完全地删除一个用户,你需要在user表中删除相应的记录:
mysql> DELETE FROM user
-> WHERE User="idiot" AND Host="%.host.net";


访问控制技巧
由于MySQL中访问控制系统工作的方法的影响,在建立你的用户之前你必须知道两个特征。
当建立的用户只能从MySQL服务运行的计算机上登录到MySQL服务(也就是说,你需要他们telnet到服务器并在那里运行MySQL的客户端程序,或者是使用象PHP这样的服务器端脚本语言进行通信),你大概会问自己GRANT命令的部分应该填什么内容。如果服务是运行在www.host.net。你是应该将用户设置为username@www.host.net还是username@localhost呢?

答案是,你不能依赖其中的任何一种来处理任何连接。从理论上来说,如果用户在连接时(无论是使用mysql客户端还是使用PHP的mysql_connect函数)指定了主机名,这个主机名必须与访问控制系统中的记录匹配。但是因为你也许不想强迫你的用户指定主机名(事实上,mysql客户端的用户也许根本不会指定主机名),你最好使用下面这种工作环境。

对于用户需要能够从MySQL服务在其上运行的机器上连接MySQL的情况,在MySQL访问控制系统中建立两个用户记录:一个使用实际的主机名(例如,username@www.host.net),另一个使用localhost(例如,username@localhost),当然,你需要为两个用户分别grant/revoke所有的权限。

MySQL管理者所要面对的另一个带有普通性的问题是一个其中的主机名使用了通配符的用户记录(例如,前面提到jessica@%.host.net)没起作用。发生这种情况,一般是由于MySQL访问控制系统中记录的优先级的问题。具体地说,越具体的主机名优先级越高(例如,www.host.net是最具体的,%.host.net是比较具体的,而%是最不具体的)。

在一个新安装后,MySQL访问控制系统包含两个匿名用户记录(它允许在当前主机上使用任何用户名进行连接--这两个记录分别支持从localhost连接以及从服务器的实现的主机名进行连接),以及两个root用户目录。我们上面讨论的情况发生时是由于匿名用户目录的优先级比我们的新记录高,因为他们的主机名更具体。
让我们看看www.host.net上user表的内容,我们假定已经添加了Jessica的记录。数据行是按照MySQL服务在确认连接时的优先级排列的:


正如你看到的,因为Jessica的记录的主机名最不具体,它的优先级最低。当Jessica试图从www.host.net连接时,MySQL服务将他的连接匹配为一个匿名用户记录(空白的User值与任何人匹配)。因为这些匿名记录不需要口令,而也许Jessica输入了他的口令,MySQL将拒绝这个连接。即使Jessica没有输入口令,他可能也只被给予了匿名用户的权限(非常有限),而不是他原来被赋予的权限。
解决这个问题的方法是,要么你删除匿名用户的记录(DELETE FROM user WHERE User=""),要么再为所有的可能从localhost连接的用户指定两条记录(例如,相对于localhost以及相对于服务器的实际主机名)

因为要为每个用户维护三个用户记录(以及相应的三套权限)会很麻烦,所以我们推荐你删除匿名用户,除非你需要用他们来完成什么特殊的应用
【遥感数字图像处理(朱文泉)】第四章 变换域处理方法 变换域的处理方法 阅读详情

相关推荐

STM32控制舵机SG-5010转动,HAL库

首先设置时钟为72Mhz,预分频系数为72-1,自动重装载计数器的值为5000-1,这样的话就可以得到一个5ms的脉冲宽度,5000的计数值可以让舵机的旋转角度变得更加易控且相对精准,计算旋转角度的时候也可以更加精确。所以我们5ms脉宽,period是5000脉宽-------------角度----------pulse0.5ms-------------0度----------500;1.0ms------------45度---------1000;

qq_73783264的博客 1292

MySQL常用命令 (这些命令专属于MySQL 不属于标准SQL语句)

MySQL常用命令 (这些命令专属于MySQL 不属于标准SQL语句)

heliuerya的博客 414

人类肠道微生物群落代谢建模

MICOMWeb 是款用户友好型网站,专为人类肠道微生物群落代谢建模设计。该网站旨在解决基因组尺度代谢模型(in silico)构建过程中的3大限制:① 使用 MICOM Python 包进行通量平衡分析时对用户 Python 编程知识的要求;② 支持预定义和用户自定义饮食,以生成专属代谢模型;③ 处理宏基因组鸟枪法测序或 16S 扩增子测序获得的真实丰度数据时,所需的高通量计算基础设施。本文展示了 MICOMWeb 的核心功能,用户可轻松开展虚拟实验,为3个已发表数据集的实验验证生成功能性假设。

多组・学・多组学 1169

mysql权限说明

从3.22.11版本开始,MySQL提供了简单的方法来管理用户的访问。使用MySQL提供的非标准的命令GRANT和REVOKE,你可以建立用户并赋予其相应的权限,而不必关心它在前面提到的五个表中的存储形式。 使用GRANT GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下: mysql> GRANT ON -> TO [IDENTIFIED BY ""] -> [WITH GR

wsp1的专栏 2507

ArcGIS Maps SDK for Unity实战:把真实世界地形‘搬进’游戏场景的保姆级教程

本文详细介绍了如何使用ArcGIS Maps SDK for Unity将真实世界地形导入游戏场景的完整流程。从高程数据获取、TPKX格式转换到Unity中的地形集成与优化,提供了保姆级教程,帮助开发者快速实现高精度地形建模,特别适用于开放世界游戏和数字孪生项目。

weixin_30621465的博客 346

GD32官方资料学习体系(主要包括MCU选型、原理图PCB设计、软件开发入门及用户手册等)

大部分还未更新,先占个坑,日后更新…… 目前国外芯片涨价涨的离谱(就是在说ST),国内最好的替代就是兆易创新出的系列芯片了。但是官方资料繁杂,小白上手不易,因此边入门边记录,也给后来者根据官方资料可以有一个较为完整的学习体系。

Eddie的博客 1万+

mysql非常用命令笔记

一、连接数据库 不借助数据库管理软件(如Navicat等软件),通过dos连接mysql服务器,然后操作数据库. 连接数据库通用格式:mysql -P 端口号 -h mysql主机名或ip地址 -u 用户名 -p 解释: (-P大写P代表端口,小写p代表密码,h代表主机名或ip,u代表user用户)” mysql -P 3306 -h 192.168.1.101 -u root -p 1.本地...

真的愿意去努力,人生最坏的结果,也不过是大器晚成。 314

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 429

Mysql 用户管理(创建、删除、改密、授予权限、取消权限)

用户管理主要包括两方面的工作: 用户账号的管理,包括: 创建、删除、改密 用户权限的管理,包括: 授予权限、取消权限 先测试一下通过 ip 地址连接数据库 dengzemiaodeMacBook-Pro:~ dengzemiao$ mysql -h10.0.90.48 -uroot -p Enter password: ERROR 1130 (HY000): Host '10.0.90.48' is not allowed to connect to this MySQL server 因为 ..

卡尔特斯 1359

时间序列预测 — 预测数据集(负荷、风电、光伏、销量等)

GEFCom2014 “负荷预测数据”为竞赛的公共数据集,GEFCom2014 的负荷预测轨迹为概率负荷预测。

几度春风里的博客 2万+

激光雷达点云配准:ICP与NDT算法详解

激光雷达点云配准:ICP与NDT算法详解​ ,人工智能,计算机视觉,大模型,AI,本文深入解析激光雷达点云配准的ICP与NDT算法。阐述了点云配准基础概念与评价指标,详解ICP算法原理、流程、最优变换矩阵计算、优缺点及改进版,给出Python代码示例;同样解析NDT算法的原理、流程、模型构建、优缺点、参数选择与代码示例。还对比两者在精度、效率、鲁棒性和适用场景的差异,提供算法选择建议,介绍实际应用案例、常见问题及解决方法,探讨算法发展趋势。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 15万+

mysql 用户权限管理

用户权限管理主要有以下作用: 1. 可以限制用户访问哪些库、哪些表 2. 可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作 3. 可以限制用户登录的IP或域名 4. 可以限制用户自己的权限是否可以授权给别的用户 一、用户授权 mysql> grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option; all privile

PHP,Java--在世悟空的博客 7087

电路板保险丝如何选型

在电路板保险丝选型过程中,需要考虑多个因素以确保其适合特定的电路需求。最后,经过以上程序选定的样品需要在实际的电路中进行测试,以验证所选择的保险丝是否合适。

weixin_57010826的博客 1310

mysql update 权限_说说MySQL权限

本文首发于个人微信公众号《andyqian》,期待你的关注~前言今天继续MySQL系列文章,讲讲MySQL权限相关的内容。我们都知道,在写系统的时候,都会有权限相关的服务,以达到权限控制的目的。以最简单的权限菜单为例: 管理员拥有最大权限,可以查看系统下所有菜单。操作员只拥有部分菜单权限。同样的,在MySQL数据库中也有相应的权限管理。例如:数据库连接权限,新增,修改,查询权限等等。下面我们就一一...

weixin_42601547的博客 2249

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

mysql 有哪些权限

MySQL包含共29个权限: 1、授予数据库权限时,可以指定的<权限类型> 授予数据库权限时,可以指定的<权限类型> select 表示授予用户可以使用select语句访问特定数据库中所有表和视图的权限。 insert 表示授予用户可以使用insert语句向特定数据库中所有表添加数据行的权限。 delete 表示授予用户可以使用delete语句删除特定数据库中所有表的数据行的权限。 update 表示授予用户可以...

weixin_40482816的博客 4134

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

mysql权限reference_MySQL权限详解

MySQL权限详解MySQL权限级别介绍MySQL权限级别全局性的管理权限,作用于整个MySQL实例级别数据库级别的权限,作用于某个指定的数据库上或者所有的数据库上数据库对象级别的权限,作用于指定的数据库对象上(表、视图等)或 者所有的数据库对象上权限存储在mysql库的user, db, tables_priv, columns_priv, and procs_priv这几个系统表中,待MySQ...

weixin_32027779的博客 2976

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MySQL权限

MySQL权限

Leslie_qlh的博客 3522

mysql回收所有权限_MySQL收回用户的权限

收回用户的权限就是取消已经赋于用户的某些权限。例如,如果数据库管理员觉得某个用户不应该拥有DELETE权限,那么就可以将DELETE权限收回。收回用户不必要的权限可以在一定程度上保证系统的安全性。MySQL中使用REVOKE语句取消用户的某些权限。使用REVOKE收回权限以后,用户账户的记录将从db、host、tables_priv和columns_priv表中删除,但是用户账号记录仍然在user...

weixin_36286464的博客 1万+

mysql回收所有权限_MYSQL权限回收

给予最小权限grant select,insert,update,delete,create,LOCK TABLES,Trigger,EXECUTE on vtdc.employee to joe@10.163.225.87 identified by '';FLUSH PRIVILEGES查看全部用户:select * from mysql. user \G。查看权限。mysql> sho...

weixin_35595485的博客 896

MySQL实践——MySQL权限

MySQL的mysql 系统库提供了user、db、tables_priv、columns_priv、procs_priv、proxies_priv几个表,用于存放不同权限范围的用户账号相关数据,这些表共同组成了MySQL的访问权限控制系统。MySQL访问权限控制系统的主要功能是对从给定主机连接到MySQL服务器的用户进行身份验证,并校验该用户在该服务器中的数据库对象访问权限(如SELECT、INSERT、UPDATE和DELETE)。

JC的博客 1419

mysql 权限_说说MySQL权限

本文首发于个人微信公众号《andyqian》,期待你的关注~前言今天继续MySQL系列文章,讲讲MySQL权限相关的内容。我们都知道,在写系统的时候,都会有权限相关的服务,以达到权限控制的目的。以最简单的权限菜单为例: 管理员拥有最大权限,可以查看系统下所有菜单。操作员只拥有部分菜单权限。同样的,在MySQL数据库中也有相应的权限管理。例如:数据库连接权限,新增,修改,查询权限等等。下面我们就一一...

weixin_32620249的博客 151

MySQL中用户权限、库权限、表权限的控制

在开发中,除了可以在脚本代码中控制开发者对MySQL数据库数据表的权限,还可以在mysql层面进行控制。 对mysql的权限的控制可以大致分为三个层面:①连接上允不允许(是否能登录到mysql服务器)②数据库层面上:允许用户操作哪些数据库③数据标层面上:允许用户操作哪些表,并可以定义对表的操作权限:比如insert,create,update等。如果还觉得不够精细,MySQL还可以精确到

misaka去年夏天的博客 2万+

MySQL 权限操作

在耍 MySQL 的时候,有木有忘记密码,没有权限等等,看完这一篇,一切都不是事!

Demo_Null 3945

mysql 所有用户权限_如何设置mysql的权限为所有的用户权限

展开全部背景在了解动态权限之前,我们先回顾下 MySQL 的权e69da5e887aa3231313335323631343130323136353331333433633464限列表。权限列表大体分为服务级别和表级别,列级别以及大而广的角色(也是MySQL 8.0 新增)存储程序等权限。我们看到有一个特殊的 SUPER 权限,可以做好多个操作。比如 SET 变量,在从机重新指定相关主机信息以及清...

weixin_29229261的博客 1029

mysql ddl权限_MySQL的权限有哪些

展开全部背景在了解动态权限之636f707962616964757a686964616f31333433633464前,我们先回顾下 MySQL 的权限列表。权限列表大体分为服务级别和表级别,列级别以及大而广的角色(也是MySQL 8.0 新增)存储程序等权限。我们看到有一个特殊的 SUPER 权限,可以做好多个操作。比如 SET 变量,在从机重新指定相关主机信息以及清理二进制日志等。那这里可以看...

weixin_34329963的博客 905

mysql给权限命令_MySQL 权限命令

MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户一、grant普通数据用户,查询、插入、更新、删除数据库中所有表数据的权利。grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to...

weixin_33469623的博客 793
上一篇: 关于ip_conntrack: table full, dropping packet的问题
下一篇: 用DNS+GeoIP+Nginx+Varnish做世界级的CDN
brucechenctl
博客等级 码龄20年 2粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值