本文将创建三种不同的用户,并且以三种不同的方式进行连接:
- 从本地机器连接
- 从IP地址在192.168.0.0 ~ 192.168.0.255范围内的任何机器连接
- 从wiley.com域中的任何机器连接
我们通过使用grant命令来创建用户并赋予权限。先以root用户身份登陆MySQL,然后执行以下命令:
#为di创建一个本地登陆
mysql> GRANT ALL ON *.* TO di@localhost IDENTIFIED BY 'password';
#创建一个来自C类子网192.168.0的登录。用单引号来保护IP范围,并使用掩码255.255.255.0来确定允许的IP地址范围
mysql> GRANT ALL ON *.* TO di@'192.168.0.0/255.255.255.0' IDENTIFIED BY 'password';
#创建一个登陆,让di能从wiley.com域中的任何机器登录
mysql> GRANT ALL ON *.* TO di@'%.wiley.com' IDENTIFIED BY 'password';
然后可以查看user表来核对:
mysql> SELECT user, host, authentication_string FROM mysql.user;
+---------------------------+------------------+-------------------------------------------+
| host | user | authentication_string |
+---------------------------+------------------+-------------------------------------------+
| localhost | root | |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | debian-sys-maint | *9E7189A8E3D1148B5ABE10E73607099C4FAFBB2E |
| localhost | di | *0CAF37D99B137BA98013278B117AB88AEA2A20E6 |
| %.wiley.com | di | *0CAF37D99B137BA98013278B117AB88AEA2A20E6 |
| 192.168.0.0/255.255.255.0 | di | *0CAF37D99B137BA98013278B117AB88AEA2A20E6 |
+---------------------------+------------------+-------------------------------------------+
6 rows in set (0.00 sec)
从上表可以看出,刚刚创建的三个用户已经出现在表内,并且密码已被加密。注意以上命令中的 ‘authentication_string’,有些书本中是 ‘password’,这是过时的用法,在 MySQL 5.7 中 user 表的 password 已被替换为 authentication_string 。