CentOS8 的 MySQL8 中创建新用户并授予权限

MySQL 是世界上最流行的数据库管理系统之一。 这个开源数据库管理系统可帮助我们存储、组织和检索数据。 MySQL 提供了许多选项,允许我们根据用户需求授予数据库特定权限。

在这篇文章中,我们将向我们展示 MySQL 8 中创建用户并授予权限。

先决条件

  • 云平台上的全新 CentOS 8 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 CentOS 8 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到 CentOS 8 服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 安装 MySQL 服务器 8

首先,我们需要在我们的服务器上安装 MySQL 服务器 8。 我们可以使用以下命令安装它:

dnf install mysql-server -y

安装完成后,启动 MySQL 服务并使其在系统重新启动时启动:

systemctl start mysqld
systemctl enable mysqld

第 3 步 – 创建数据库和用户

在本节中,我们将在 MySQL 中创建数据库和用户。

首先,使用以下命令连接到 MySQL shell:

mysql

连接后,使用以下命令创建一个名为 testdb 和 testdb1 的数据库:

CREATE DATABASE testdb;
CREATE DATABASE testdb1;

接下来,使用以下命令显示所有数据库:

show databases;

我们应该在以下输出中获得所有数据库:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
| testdb1            |
+--------------------+
6 rows in set (0.01 sec)

接下来,为 localhost 创建一个名为 testuser 的用户,并使用以下命令设置密码:

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';

我们为 localhost 创建了一个 testuser,这意味着 testuser 将只能从 localhost 连接到 MySQL。

如果要创建 MySQL 用户并授予来自 IP 为 192.168.10.100 的远程计算机的访问权限,请运行以下命令:

CREATE USER 'testuser'@'192.168.10.100' IDENTIFIED BY 'password';

如果要创建 MySQL 用户并授予所有远程主机的访问权限,请运行以下命令:

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

第 4 步 – 向 MySQL 用户帐户授予权限

MySQL 提供了几种类型的用户权限,我们可以授予用户这些权限。 下面列出了其中一些:

  • ALL PRIVILEGES:用于授予用户帐户所有权限。
  • INSERT:这允许用户将行插入到表中。
  • SELECT:允许用户读取数据库。
  • UPDATE:允许用户更新表行。
  • CREATE:允许用户创建数据库和表。
  • DELETE:这允许用户从表中删除行。
  • DROP:允许用户删除数据库和表。

让我们看一些例子:

要在 testdb 数据库上向 testuser 授予所有权限,请运行以下命令:

GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';

要将所有数据库上的所有权限授予 testuser,请运行以下命令:

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

要仅向 testdb1 数据库上的 testuser 授予 SELECT、INSERT 和 DELETE 权限,请运行以下命令:

GRANT SELECT, INSERT, DELETE ON testdb1.* TO testuser@'localhost';

第 5 步 – 显示授予的权限

我们可以使用 SHOW GRANTS 命令显示我们已授予 MySQL 用户的权限。

运行以下命令以显示所有授予 testuser 的权限:

SHOW GRANTS FOR 'testuser'@'localhost';

我们应该得到以下输出:

+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------a+
| Grants for testuser@localhost                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `testuser`@`localhost`                                                                                                                                               |
| GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON *.* TO `testuser`@`localhost` |
| GRANT ALL PRIVILEGES ON `testdb`.* TO `testuser`@`localhost`                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| GRANT SELECT, INSERT, DELETE ON `testdb1`.* TO `testuser`@`localhost`                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)

第 6 步 – 撤销 MySQL 用户帐户的权限

如果要撤销或恢复 MySQL 用户对数据库的所有权限,请使用 revoke 命令,如下所示:

REVOKE ALL PRIVILEGES ON testdb.* FROM 'testuser'@'localhost';

第 7 步 – 删除 MySQL 数据库和用户帐户

要删除 MySQL 数据库,请使用以下命令:

DROP DATABSE testdb;

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

DROP USER 'testuser'@'localhost';

在本指南中,我们解释了 MySQL 8 中创建 MySQL 数据库、用户和授予权限。我们现在可以为我们的数据库试验不同的权限设置并将它们应用到开发环境中。 今天就在 的专用服务器上试试吧!

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论