MySQL5.7 添加、删除用户与受权

mysql -uroot -prootmysql

例子:sql

建立用户
mysql> CREATE USER 'xiaoyaoji'@'%' IDENTIFIED BY 'xiaoyaoji';
Query OK, 0 rows affected (0.00 sec)
查看权限
mysql> show grants for 'xiaoyaoji'@'%';
+---------------------------------------+
| Grants for xiaoyaoji@% |
+---------------------------------------+
| GRANT USAGE ON *.* TO 'xiaoyaoji'@'%' |
+---------------------------------------+
1 row in set (0.00 sec)
受权全部权限
mysql> GRANT all privileges ON *.* TO 'xiaoyaoji'@'%';
Query OK, 0 rows affected (0.00 sec)
查看权限
mysql> show grants for 'xiaoyaoji'@'%';
+------------------------------------------------+
| Grants for xiaoyaoji@% |
+------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'xiaoyaoji'@'%' |
+------------------------------------------------+
1 row in set (0.00 sec)数据库

 

 

 

 

 

 

MySQL5.7 mysql.user表没有password字段改 authentication_string;服务器

一. 建立用户:

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';ide

例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';spa

        CREATE USER 'dog2'@'localhost' IDENTIFIED BY '';string

PS:username - 你将建立的用户名,io

host - 指定该用户在哪一个主机上能够登录,此处的"localhost",是指该用户只能在本地登陆,不能在另一台机器上远程登陆,若是想远程登陆的话,将"localhost"改成"%",表示在任何一台电脑上均可以登陆;也能够指定某台机器能够远程登陆;table

password - 该用户的登录密码,密码能够为空,若是为空则该用户能够不须要密码登录服务器。class

二.受权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

PS: privileges - 用户的操做权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).若是要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,若是要授予该用户对全部数据库和表的相应操做权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON mq.* TO 'dog'@'localhost';

三.建立用户同时受权

mysql> grant all privileges on mq.* to test@localhost identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

PS:必须执行flush privileges; 

不然登陆时提示:ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES ) 

 

四.设置与更改用户密码

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

例子: SET PASSWORD FOR 'dog2'@'localhost' = PASSWORD("dog");

五.撤销用户权限

      命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

     说明: privilege, databasename, tablename - 同受权部分.

      例子: REVOKE SELECT ON mq.* FROM 'dog2'@'localhost';

PS: 假如你在给用户'dog'@'localhost''受权的时候是这样的(或相似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操做.相反,若是受权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.

      具体信息能够用命令SHOW GRANTS FOR 'dog'@'localhost'; 查看.

六.删除用户

      命令: DROP USER 'username'@'host';

七.查看用户的受权

mysql> show grants for dog@localhost;
+---------------------------------------------+
| Grants for dog@localhost |
+---------------------------------------------+
| GRANT USAGE ON *.* TO 'dog'@'localhost' |
| GRANT INSERT ON `mq`.* TO 'dog'@'localhost' |
+---------------------------------------------+
2 rows in set (0.00 sec)

PS:GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干

相关文章
相关标签/搜索