在以下平台上分享

介绍

在使用数据库时,通常需要能够创建和删除用户。无论是与需要访问数据库的多个成员的团队合作,还是创建和删除测试用户以模拟数据库权限,了解如何添加和删除数据库用户都是很重要的。

在本简短指南中,我们将介绍在 MySQL 中创建和删除数据库用户的基本知识。这些命令将帮助您开始授予数据库访问权限,并为将来的 角色管理 打下基础。

如何创建 MySQL 用户?

在 MySQL 中创建用户对于与他人协作以及测试访问权限和特权至关重要。需要注意的是,要创建用户,您必须使用具有 先决条件 中描述的特权的用户登录。

基本语法

创建新用户的基本语法相对简单。您使用 CREATE USER 命令,然后指定新帐户的用户和主机

CREATE USER '<user>'@'<host>';

这将创建一个基本帐户,除了在创建时指定的用户和主机之外,不会配置任何其他详细信息。

如何创建具有密码的用户?

通常,您希望在创建用户时配置 身份验证。您可以通过在 CREATE USER 语句中添加可选的 IDENTIFIED BY 子句来实现

CREATE USER '<user>'@'<host>' IDENTIFED BY '<password>';

这将创建新的用户帐户(如前所述),并同时为帐户分配密码。我们将在稍后介绍如何事后分配密码或如何更改用户的密码。

如何创建使用 Unix 套接字身份验证的用户?

虽然密码身份验证是大多数用户最常见的身份验证方法,但它不是唯一选择。MySQL 提供了许多不同的内部和外部身份验证机制,您可以将用户帐户配置为使用这些机制。例如,我们将使用 Unix 套接字身份验证配置新帐户。

Unix 套接字身份验证可用于 Linux 或类 Unix 环境,以便操作系统上的帐户在无需进一步身份验证的情况下获得 MySQL 中相同帐户名的访问权限。在此配置中,MySQL 管理员 知道操作系统上的用户帐户受到严格控制。

因此,如果操作系统上存在一个名为 mary 的用户,那么如果 Unix 套接字身份验证是定义的身份验证机制,他们将能够登录 MySQL 中的 'mary'@'localhost' 帐户。现在让我们配置它。

套接字身份验证需要 auth_socket 插件,因此首先通过键入以下内容加载插件

INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';

接下来,创建一个与操作系统上的用户帐户匹配的用户帐户。在本例中,我们将使用上面讨论的 mary 帐户。如果您使用的名称与操作系统上的任何名称不匹配,则将无法使用此用户进行身份验证。

要使用套接字身份验证创建用户,我们需要使用 IDENTIFIED WITH 子句(与前面使用的 IDENTIFIED BY 子句不同)指定要使用的身份验证插件

CREATE USER 'mary'@'localhost' IDENTIFIED WITH auth_socket;

现在,您应该能够从操作系统上的 mary 用户登录到 'mary'@'localhost' MySQL 用户。当以 mary 身份登录时,连接到数据库而不提供任何用户名或密码

mysql

您应该通过配置的 Unix 套接字身份验证自动登录。

如何删除 MySQL 用户?

保留不再使用的用户账户存在安全风险。您可以使用 DROP USER 命令轻松删除账户。

基本语法如下:

DROP USER '<user>'@'<host>';

所以,要删除 'mary'@'localhost' 用户,您需要输入以下命令:

DROP USER 'mary'@'localhost';

如果您尝试删除不存在的用户,您将收到错误信息。

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

为了避免这种情况,您可以在账户名称前添加 IF EXISTS 子句。如果用户存在,它将被删除。如果不存在,只会给出警告。

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

结论

在本篇快速指南中,我们介绍了创建和删除 MySQL 数据库用户的基本操作以及一些其他选项。

创建用户后,我们还提供了更多信息丰富的文章,深入探讨了 MySQL 中的 用户角色管理 以及 用户身份验证

关于作者
Alex Emerich

Alex Emerich

Alex 是一位典型的喜欢观鸟、嘻哈音乐和读书的书虫,他也喜欢撰写有关数据库的文章。他目前居住在柏林,经常可以看到他像利奥波德·布鲁姆一样漫无目的地在城市里闲逛。