mysql8创建、删除用户及授权、消权操作的方法

发布时间:2022-03-29 17:51:57 作者:iii
来源:亿速云 阅读:619

MySQL8创建、删除用户及授权、消权操作的方法

MySQL 8 是一个功能强大的关系型数据库管理系统,广泛应用于各种规模的应用程序中。在 MySQL 8 中,用户管理和权限控制是数据库安全的重要组成部分。本文将详细介绍如何在 MySQL 8 中创建、删除用户,以及如何为用户授权和撤销权限。

1. 创建用户

在 MySQL 8 中,创建用户可以使用 CREATE USER 语句。创建用户时,可以指定用户名、主机名和密码。

1.1 创建用户的基本语法

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

1.2 示例

创建一个名为 testuser 的用户,允许从任何主机连接,并设置密码为 testpassword

CREATE USER 'testuser'@'%' IDENTIFIED BY 'testpassword';

创建一个名为 localuser 的用户,只允许从 localhost 连接,并设置密码为 localpassword

CREATE USER 'localuser'@'localhost' IDENTIFIED BY 'localpassword';

1.3 创建用户时指定认证插件

MySQL 8 支持多种认证插件,默认使用 caching_sha2_password。如果需要使用其他认证插件,可以在创建用户时指定。

CREATE USER 'pluginuser'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'pluginpassword';

2. 删除用户

在 MySQL 8 中,删除用户可以使用 DROP USER 语句。

2.1 删除用户的基本语法

DROP USER 'username'@'hostname';

2.2 示例

删除用户 testuser,允许从任何主机连接:

DROP USER 'testuser'@'%';

删除用户 localuser,只允许从 localhost 连接:

DROP USER 'localuser'@'localhost';

2.3 删除多个用户

可以一次删除多个用户,只需在 DROP USER 语句中列出所有要删除的用户。

DROP USER 'user1'@'%', 'user2'@'localhost';

3. 授权

在 MySQL 8 中,授权可以使用 GRANT 语句。授权时,可以指定用户、数据库、表以及具体的权限。

3.1 授权的基本语法

GRANT privilege_type ON database_name.table_name TO 'username'@'hostname';

3.2 示例

授予用户 testuser 对所有数据库的所有表具有 SELECT 权限:

GRANT SELECT ON *.* TO 'testuser'@'%';

授予用户 localuser 对数据库 mydb 的所有表具有 ALL PRIVILEGES 权限:

GRANT ALL PRIVILEGES ON mydb.* TO 'localuser'@'localhost';

3.3 授予特定权限

可以授予用户特定的权限,如 SELECT, INSERT, UPDATE, DELETE 等。

GRANT SELECT, INSERT, UPDATE ON mydb.mytable TO 'testuser'@'%';

3.4 授予所有权限

授予用户对所有数据库的所有表具有所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';

3.5 授予权限并允许用户授予权限

使用 WITH GRANT OPTION 选项,允许用户将自己拥有的权限授予其他用户。

GRANT ALL PRIVILEGES ON mydb.* TO 'testuser'@'%' WITH GRANT OPTION;

4. 撤销权限

在 MySQL 8 中,撤销权限可以使用 REVOKE 语句。

4.1 撤销权限的基本语法

REVOKE privilege_type ON database_name.table_name FROM 'username'@'hostname';

4.2 示例

撤销用户 testuser 对所有数据库的所有表的 SELECT 权限:

REVOKE SELECT ON *.* FROM 'testuser'@'%';

撤销用户 localuser 对数据库 mydb 的所有表的 ALL PRIVILEGES 权限:

REVOKE ALL PRIVILEGES ON mydb.* FROM 'localuser'@'localhost';

4.3 撤销特定权限

可以撤销用户特定的权限,如 SELECT, INSERT, UPDATE, DELETE 等。

REVOKE SELECT, INSERT, UPDATE ON mydb.mytable FROM 'testuser'@'%';

4.4 撤销所有权限

撤销用户对所有数据库的所有表的所有权限:

REVOKE ALL PRIVILEGES ON *.* FROM 'testuser'@'%';

4.5 撤销 WITH GRANT OPTION 权限

撤销用户授予其他用户权限的能力:

REVOKE GRANT OPTION ON mydb.* FROM 'testuser'@'%';

5. 查看用户权限

在 MySQL 8 中,可以使用 SHOW GRANTS 语句查看用户的权限。

5.1 查看用户权限的基本语法

SHOW GRANTS FOR 'username'@'hostname';

5.2 示例

查看用户 testuser 的权限:

SHOW GRANTS FOR 'testuser'@'%';

查看用户 localuser 的权限:

SHOW GRANTS FOR 'localuser'@'localhost';

6. 刷新权限

在 MySQL 8 中,修改用户权限后,需要刷新权限才能使更改生效。

6.1 刷新权限的基本语法

FLUSH PRIVILEGES;

6.2 示例

刷新权限:

FLUSH PRIVILEGES;

7. 总结

在 MySQL 8 中,用户管理和权限控制是数据库安全的重要组成部分。通过 CREATE USERDROP USER 语句,可以创建和删除用户。通过 GRANTREVOKE 语句,可以为用户授权和撤销权限。通过 SHOW GRANTS 语句,可以查看用户的权限。最后,通过 FLUSH PRIVILEGES 语句,可以刷新权限使更改生效。

掌握这些操作,可以帮助数据库管理员更好地管理 MySQL 8 数据库的用户和权限,确保数据库的安全性和稳定性。

推荐阅读:
  1. MySQL添加用户、删除用户与授权
  2. mysql8的json操作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:sentinel流量控制框架怎么设置

下一篇:jQuery怎么实现商品数量加减

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》