MySQL(79)如何创建和删除用户?

68 阅读3分钟

在 MySQL 中,创建和删除用户是数据库管理的基本操作。以下是详细的步骤和代码示例,帮助你创建和删除 MySQL 用户。

1. 创建用户

创建新用户时,需要指定用户名、主机名和密码。

1.1 创建用户

使用 CREATE USER 语句创建新用户:

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
示例 1: 创建可以从任何主机访问的用户
CREATE USER 'newuser'@'%' IDENTIFIED BY 'userpassword';

在这里,% 表示允许从任何主机进行连接。

示例 2: 创建只能从本地主机访问的用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'userpassword';

在这里,localhost 表示只允许从本地主机进行连接。

1.2 创建用户并设置多重身份验证插件

可以指定不同的身份验证插件,例如使用 mysql_native_password 插件:

CREATE USER 'newuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'userpassword';

也可以使用 caching_sha2_password 插件:

CREATE USER 'newuser'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'userpassword';

2. 设置用户权限

创建用户后,通常需要授予该用户适当的权限。

2.1 授予数据库级别的权限

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'hostname';
示例: 授予 newuser 用户对 mydatabase 数据库的所有权限
GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';

2.2 授予表级别的权限

GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.table_name TO 'username'@'hostname';
示例: 授予 newuser 用户对 mydatabase 数据库中 mytable 表的 SELECT 和 INSERT 权限
GRANT SELECT, INSERT ON mydatabase.mytable TO 'newuser'@'localhost';

2.3 刷新权限

在某些情况下,你可能需要刷新权限以使更改生效:

FLUSH PRIVILEGES;

3. 删除用户

当不再需要某个用户时,可以将其删除。

3.1 删除用户

使用 DROP USER 语句删除用户:

DROP USER 'username'@'hostname';
示例: 删除 newuser 用户
DROP USER 'newuser'@'localhost';

4. 完整的用户创建和删除示例脚本

以下是一个完整的脚本示例,展示了如何创建用户、授予权限和删除用户。

-- 创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'userpassword';

-- 授予用户权限
GRANT SELECT, INSERT, UPDATE, DELETE ON mydatabase.* TO 'newuser'@'localhost';

-- 查看用户权限
SHOW GRANTS FOR 'newuser'@'localhost';

-- 刷新权限(可选)
FLUSH PRIVILEGES;

-- 删除用户(在不需要时)
DROP USER 'newuser'@'localhost';

-- 刷新权限(可选)
FLUSH PRIVILEGES;

5. 用户权限管理的更多细节

除了基本的创建和删除用户,还可以进行更复杂的权限管理和配置。

5.1 修改用户密码

ALTER USER 'username'@'hostname' IDENTIFIED BY 'newpassword';
示例: 修改 newuser 用户的密码
ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'newuserpassword';

5.2 撤销用户权限

REVOKE privilege_type ON database_name.table_name FROM 'username'@'hostname';
示例: 撤销 newuser 用户对 mydatabase.mytable 表的 INSERT 权限
REVOKE INSERT ON mydatabase.mytable FROM 'newuser'@'localhost';

5.3 查看所有用户

你可以查询 mysql.user 表来查看所有用户:

SELECT User, Host FROM mysql.user;

小结

通过了解如何在 MySQL 中创建和删除用户,你可以有效地管理数据库的访问控制。创建用户时,可以指定用户名、主机名和密码,并授予适当的权限。删除用户时,可以使用 DROP USER 语句。合理管理用户权限和密码是确保数据库安全的关键步骤。结合实际需求和安全策略,灵活运用这些命令和技巧来管理你的 MySQL 数据库用户。