MySQL数据库授权的两种方式


方法一:通过grant命令创建用户并授权

  1. grant命令简单语法如下:

    grant all privileges on dbname.* to username@localhost identified by 'passwd';

  2. 列表说明如下:

    wKioL1mJxPvStj7RAAD3znk_EEc526.png

    说明:上述命令是授权localhost主机上通过用户username管理dbname数据库的所有权限,密码是passwd。其中,username,dbname,passwd可根据业务的情况修改。

  3. 举例:创建zd用户,对test库具备所有权限,允许从localhost主机登陆管理数据库,密码为123456。

    首先,查看下当前数据库用户情况:

    mysql> select user,host from mysql.user;

    wKioL1mJyJKBizxPAAAefqtK-0M921.png然后,执行如下授权命令:

    mysql> grant all on test.* to zd@localhost identified by '123456';

    最后,查看当前数据库用户情况:

    mysql> select user,host from mysql.user;

    wKioL1mJyXXhpSuOAAAhwTQ7x2k667.png

    查看授权用户具体权限:

    mysql> show grants for zd@localhost;(或者mysql> show grants for zd@localhost\G)

    wKiom1mJyx2SlGBNAAAfkg_--YE777.png

    说明:可以看到默认权限是usage,即连接权限,后面又增加了all权限!

方法二:create和grant配合法

  1. 首先创建用户username及密码passwd,授权主机localhost。

    语法:create user username@localhost identified by 'passwd';

    如:创建用户www及密码123456,授权主机localhost。

    mysql> create user www@localhost identified by '123456';

  2. 然后授权localhost主机上通过用户username管理dbname数据库的所有权限,无需密码。

    语法:grant all on dbname.* to username@localhost;

    如:授权localhost主机上www管理test数据库的所有权限。

    mysql> grant all on test.* to zd@localhost;

  3. 查看当前用户信息:

    mysql> select user,host from mysql.user;

    wKioL1mJ1RaivgaDAAAj-Gt5HNU039.png

  4. 查看www具体权限:

    mysql> show grants for www@localhost;(或者mysql> show grants for www@localhost\G)

    wKioL1mJ1g6DKUYRAAAX_r_ag98406.png