centos7版本下mysql 用户与权限管理

    xiaoxiao2022-07-03  115

    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  

    点击原文

    最新回复(0)