centos7下mysql 用户管理和权限设置

1.进入mysql命令行,输入root及密码
[root@localhost ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.7.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

2.用户管理及权限设置
// 管理用户
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

//查询用户
mysql> select host,user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| %         | test          |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
5 rows in set (0.00 sec)

//创建用户(用户:admin,密码:123456)
mysql> create user admin identified by '123456';
Query OK, 0 rows affected (0.00 sec)

// 删除用户admin
mysql> drop user admin;
Query OK, 0 rows affected (0.00 sec)

// 重新创建用户(用户:admins,密码:123456)
mysql> create user admins identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> select host, user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | admins        |
| %         | root          |
| %         | test          |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
6 rows in set (0.00 sec)

// 查看用户admins的权限
mysql> show grants for admins;
+------------------------------------+
| Grants for admins@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO 'admins'@'%' |
+------------------------------------+
1 row in set (0.00 sec)

// 赋予权限(给用户admins,授予数据库test的查询权限)
mysql> grant select on test.* to admins;
Query OK, 0 rows affected (0.00 sec)

// 查看用户admins的权限
mysql> show grants for admins;
+------------------------------------------+
| Grants for admins@%                      |
+------------------------------------------+
| GRANT USAGE ON *.* TO 'admins'@'%'       |
| GRANT SELECT ON `test`.* TO 'admins'@'%' |
+------------------------------------------+
2 rows in set (0.00 sec)

// 收回权限(对用户admins,收回数据库test的查询权限)
mysql> revoke select on test.* from admins;
Query OK, 0 rows affected (0.01 sec)

// 查看用户admins的权限
mysql> show grants for admins;
+------------------------------------+
| Grants for admins@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO 'admins'@'%' |
+------------------------------------+
1 row in set (0.00 sec)

// 赋予权限(给用户admins,授予数据库test的查询、更新、删除、插入等权限)
mysql> grant select, update, delete, insert on test.* to admins;
Query OK, 0 rows affected (0.00 sec)

// 查看用户admins的权限
mysql> show grants for admins;
+------------------------------------------------------------------+
| Grants for admins@%                                              |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'admins'@'%'                               |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `test`.* TO 'admins'@'%' |
+------------------------------------------------------------------+
2 rows in set (0.01 sec)

// 赋予权限(给用户admins,授予数据库test的新建表、删除表或删除数据库等权限)
mysql> grant create,drop on test.* to admins;
Query OK, 0 rows affected (0.00 sec)

// 查看用户admins的权限
mysql> show grants for admins;
+--------------------------------------------------------------------------------+
| Grants for admins@%                                                            |
+--------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'admins'@'%'                                             |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `test`.* TO 'admins'@'%' |
+--------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

// 刷新权限(使设置的权限生效)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)




// 查看root的权限
mysql> show grants for root;
+-------------------------------------------+
| Grants for root@%                         |
+-------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' |
+-------------------------------------------+
1 row in set (0.00 sec)

以下是用户可以享受的常见可能权限的简短列表。

  • ALL PRIVILEGES - 正如我们前面所看到的,这将允许MySQL用户访问指定的数据库(或者如果系统中没有选择数据库)
  • CREATE-允许他们创建新的表或数据库
  • DROP-允许他们删除表或数据库
  • DELETE-允许他们从表中删除行
  • INSERT-允许它们向表中插入行
  • SELECT-允许他们使用Select命令来读取数据库
  • UPDATE-允许他们更新表行
  • GRANT OPTION - 允许他们授予或删除其他用户的权限

要向特定用户提供权限,可以使用此框架:

GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;


如果要向其授予对任何数据库或任何表的访问权限,请确保在数据库名称或表名称的地方放置星号(*)。
每次更新或更改权限时,请务必使用Flush Privileges命令。


如果您需要撤消权限,则结构与授予的结构几乎相同:
REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’;


正如您可以使用DROP删除数据库一样,您可以使用DROP完全删除用户:
DROP USER ‘demo’@‘localhost’;


要测试您的新用户,请通过键入注销
quit


并使用此命令在终端中重新登录:
mysql -u [username]-p

猜你喜欢

转载自blog.csdn.net/weixin_42231507/article/details/81238928