如何从命令行管理MySQL数据库和用户(2)

输出应该如下所示。 此输出列出了在Ubuntu机器上运行的MySQL 5.7服务器的默认用户以及我们之前添加的两个额外用户帐户'database_user'@'%'和'database_user'@'localhost'。

输出:

+------------------+-----------+
| user            | host      |
+------------------+-----------+
| database_user    | %        |
| database_user    | localhost |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root            | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

删除MySQL用户帐户

要删除用户帐户,请使用以下命令:

DROP USER 'database_user@'localhost';

输出:

DROP USER 'database_user@'localhost';

如果您尝试删除不存在的用户帐户,则会发生错误。

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

与处理数据库时一样,以避免错误可以使用:

DROP USER IF EXISTS 'database_user'@'localhost';

输出:

Query OK, 0 rows affected, 1 warning (0.00 sec)

授予MySQL用户帐户的权限

有多种类型的权限可以授予用户帐户。 您可以在这里找到MySQL支持的完整权限列表。 在本指南中,我们将通过几个例子:

要通过特定数据库将用户帐户的所有权限扩大,请使用以下命令:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

要将所有权限扩展到所有数据库上的用户帐户,请使用以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

要通过数据库中特定的表格将所有权限提供给用户帐户,请使用以下命令:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

如果您只想授予特定数据库类型的用户帐户的特定权限,请执行以下操作:

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

撤销MySQL用户帐户的权限

如果您需要从用户帐户中撤销一个或多个权限或所有权限,则语法与授予它的几乎相同。 例如,如果要通过特定数据库撤消用户帐户的所有特权,请使用以下命令:

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

显示MySQL用户帐户权限

要查找授予特定MySQL用户帐户类型的权限:

SHOW GRANTS FOR 'database_user'@'localhost';

显示:

+---------------------------------------------------------------------------+
| Grants for database_user@localhost                                      |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'database_user'@'localhost'                        |
| GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)

结论

本教程只介绍基础知识,但对于任何想要了解如何从命令行管理MySQL数据库和用户的人来说,这应该是一个很好的开始。

OK,就这样! 如果您有任何问题或反馈,请随时发表评论。

CentOS Linux 7.5上安装MySQL  https://www.linuxidc.com/Linux/2018-05/152574.htm

Ubuntu 16.04 上安装 MySQL 5.7 教程 https://www.linuxidc.com/Linux/2017-05/143864.htm

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/95c611ca8c51f9bff8296345e0161778.html