Linux学习笔记:MySQL的授权

授权,当创建用户后,则需要对用户进行授权,MySQL有意思的地方在于,它是针对用户与主机成对进行授权。也就是说,同一个用户来自不同主机,权限也可能不同。

GRANT SELECT, INSERT ON `mydb`.`student` TO ‘coosh‘@‘192.168.5.0/255.255.255.0‘ identified by ‘coosh‘;

注意,SELECT,与INSERT之间有空格,另外IP网段的写法也要注意,不能使用/24这种写法。这种写法与192.168.5.%的区别在于,%匹配任意,也就是说192.168.5.%等同于192.168.5.0/255.255.255.0,不过如果子网掩码不是标准的,例如255.255.255.128,那么整个192.168.5.0就会被分割成两个网段,这时就要使用192.168.5.0/255.255.255.128这种写法,可以匹配到192.168.5.1-192.168.5.126

经过上面的授权命令后,查看一下mysql表

mysql> select user,host,password from mysql.user where user=‘coosh‘;
+-------+---------------------------+-------------------------------------------+
| user  | host                      | password                                  |
+-------+---------------------------+-------------------------------------------+
| coosh | 127.0.0.1                 | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
| coosh | 192.168.5.%               | *91A66B6C7D4FABDB9225374DC006BB98E6C6F0CB |
| coosh | 192.168.5.0/255.255.255.0 | *4747E0BBC01404D0D09BD8A9BA1AE4F5FC5FDC94 |
+-------+---------------------------+-------------------------------------------+
3 rows in set (0.00 sec)

可以看出coosh这个用户有多个不同的密码;而且经过测试,MySQL会优先使用指定了子网掩码的行。

透过LAN内另外一台机器用coosh这个用户去连接MySQL

mysql> insert into student
    -> values(1,‘Mr Coosh‘,100);
Query OK, 1 row affected (0.02 sec)

mysql> select * from student;
+----+----------+-------+
| id | name     | score |
+----+----------+-------+
|  1 | Mr Coosh |   100 |
+----+----------+-------+
1 row in set (0.00 sec)

mysql> delete from student where id=1;
ERROR 1142 (42000): DELETE command denied to user ‘coosh‘@‘192.168.5.141‘ for table ‘student‘

可以看到coosh可以插入一条新记录,也可以查询,却不能删除(提示命令被拒绝)

回到服务器上

[[email protected] ~]# mysql -u root -p -h 127.0.0.1 -P 3308
Enter password: 
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> show grants for [email protected];
+--------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                   |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘coosh‘@‘127.0.0.1‘ IDENTIFIED BY PASSWORD ‘*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29‘ |
| GRANT ALL PRIVILEGES ON `mydb`.* TO ‘coosh‘@‘127.0.0.1‘                                                      |
| GRANT ALL PRIVILEGES ON `test`.* TO ‘coosh‘@‘127.0.0.1‘                                                      |
+--------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

可以看到,如果在服务器本机使用coosh来登录,是具有全部的命令权限

测试一下

[[email protected] ~]# mysql -ucoosh -p -h 127.0.0.1 -P3308
Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql> delete from mydb.student where id=1;
Query OK, 1 row affected (0.00 sec)

在服务器上登录则可以成功删除。

查看授权

mysql> show grants for [email protected];
+--------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                   |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘coosh‘@‘127.0.0.1‘ IDENTIFIED BY PASSWORD ‘*1981B3D87F8E4997E444AC2F469A74D5145EEB75‘ |
| GRANT ALL PRIVILEGES ON `mydb`.* TO ‘coosh‘@‘127.0.0.1‘                                                      |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for [email protected]‘192.168.5.0/255.255.255.0‘;
+------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]/255.255.255.0                                                                                   |
+------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘coosh‘@‘192.168.5.0/255.255.255.0‘ IDENTIFIED BY PASSWORD ‘*1981B3D87F8E4997E444AC2F469A74D5145EEB75‘ |
| GRANT SELECT, INSERT ON `mydb`.* TO ‘coosh‘@‘192.168.5.0/255.255.255.0‘                                                      |
+------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
时间: 2024-12-25 03:08:05

Linux学习笔记:MySQL的授权的相关文章

linux 学习笔记 mysql安装总结

1 安装方式 下载2禁制源码安装包 mysql-5.5.27-linux2.6-i686.tar.gz 备注:2禁制额包解压缩后直接就可以使用 不用Make 2 步骤 shell>groupadd mysql shell>useradd -d /home/mysql -m mysql -g mysql shell>cd /usr/local shell>mkdir mysql shell>cp /mnt/hgfs/Exchange \Data/MYSQL_Linux/mysq

马哥Linux学习笔记之五——邮件服务

1.SMTP只负责将邮件发送到服务器,其他的,像身份认证检测邮件,都不能完成.(25/tcp) ESMTP:Extended SMTP POP3:Post Office Protocol IMAP4:Internet Mail Access Protocol 2.Open Relay:开放式中继 就是人家的邮件从这个邮件服务器过,你都帮忙转发,这样就会成为产生垃圾邮件的根源.所以都要关闭Open Relay 3.SASL,Simple Authintication Secure Layer,简单

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Linux学习笔记——例说makefile 增加系统共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

linux学习笔记--vim程序编辑器

1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器. 2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim 3,学习vim的重要性 (1)所有的UNIX Like系统都内置vi文本编辑器,其他的文本编辑器不一定存在 (2)很多软件的编辑接口都会主动调用vi (3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来

Linux学习笔记三:Linux的权限处理命令

1.改变文件或目录权限  chmod 语法:chmod [{ugo} {+-=} {rwx}] [文件或目录] 或 [mode] [文件或目录] 第一种语法中: 这里的u是所有者,g是指所属组,o是指其他人 +是指增加权限,-是指减少权限,=是指赋予权限 r是指读权限,w是指写权限.x只是执行权限 第二种语法中: 在这里,r的值是4,w的值是2,x的值是1. 这里写的mode,是指一组数字.如:421.这里的421,是指所有者所拥有权限的数字总和是4,所属组所拥有权限的总和是2,其他人所拥有权限

Linux学习笔记033_10

网卡命名: eth0,eth1 子接口(一个网卡上多个IP):eth0:1,eth0:2 ifconfig: 查看网卡信息 ifup ethx:开启网卡 ifdown ethx:关闭网卡 配置网卡: 图形 命令: ONBOOT为yes表示启动计算机时通过网卡 全局网络配置: 第一行为开启ipv4,第二行为开启ipv6,第三行为计算机名,注意计算机名在DNS要解析到,如clc.com 可以加一行:GATWAY=192.168.1.254,不过以network-scripts中的网关优先级高 DNS