MySQL创建用户以及授权

首先登录数据库

[root@www ~]# mysql -uroot -p
Enter password: 

第一种方式使用grant直接创建和授予权限:

mysql>grant all privileges on qiuhom.* to qiuhom_db1@localhost identified by 'admin123.com';

以上语句表示创建一个qiuhom_db1的用户并且给予用户qiuhom库下的所有表的权限,并设置密码为admin123.com,我们可以通过show grants for qiuhom_db1@localhost;来查看用户的权限

mysql> show grants for qiuhom_db1@localhost;
+-------------------------------------------------------------------------------------------------------------------+
| Grants for qiuhom_db1@localhost |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'qiuhom_db1'@'localhost' IDENTIFIED BY PASSWORD '*2D9AC2437F9E59A51BE8BA89A3D59E76F32F55E8' |
| GRANT ALL PRIVILEGES ON `qiuhom`.* TO 'qiuhom_db1'@'localhost' |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec) 

第二种方式是先创建用户然后在授权

mysql>create user qiuhom_db2@localhost identified by 'admin123.com';     ####创建qiuhom_db2@localhost用户,并设置密码为admin123.com 
mysql>grant all on qiuhom.* to qiuhom_db2@localhost;              ####给qiuhom_db2@localhost授权

查看权限

mysql> show grants for qiuhom_db2@localhost;
+-------------------------------------------------------------------------------------------------------------------+
| Grants for qiuhom_db2@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'qiuhom_db2'@'localhost' IDENTIFIED BY PASSWORD '*2D9AC2437F9E59A51BE8BA89A3D59E76F32F55E8' |
| GRANT ALL PRIVILEGES ON `qiuhom`.* TO 'qiuhom_db2'@'localhost'                                                    |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

  提示:以上两种方式都是mysql数据库创建用户和授权用户的权限,需要注意的是第二种方式授权后面不需要有密码,创建好用户后不授权是可以登录的,只是登录后不能操作任何数据库包括查看都没有。

关于远程用户权限

grant all privileges on *.* to 'root'@'10.0.0.18' identified by 'admin06' with grant option; 

  说明:解释下上面的命令,其中*.* 表示的是所有库的所有表 就是整个数据库的所有文件的 。后面的root是表示给那个用户授权,这里是root再后面的ip就是授权的运行登录的服务器地址,这里注意下,假设要授权为任何主机都可以来访问的话,我们这里就要设置成%比如:'root'@'%'就表示任一主机上的root都可以来访问,'%'@'10.0.0.18'就表示18上的任一用户都可以来访问,'%'@'%'就表示任一主机的任一用户都可以来访问,再后面的by ××× 就是用户登录的密码 在后面with grant option 就表示授权为管理员,其实授权的命令和其他命令都可以经数据库里面用help命令去查看帮助,比如不清楚grant的用法 可以help grant 就可以看到详细的解释,关于授权我们还可以用直接修改其mysql库里面的user表里面的user字段和host字段,比如将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,如下所示

update user set host = ’%’ where user = ’root’;
posted @ 2018-10-03 22:51  Linux-1874  阅读(952)  评论(0编辑  收藏  举报