前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Linux中检查MySQL用户权限?

如何在Linux中检查MySQL用户权限?

作者头像
网络技术联盟站
发布2023-03-13 20:27:19
6.4K0
发布2023-03-13 20:27:19
举报
在任何操作系统上首次/全新安装 MySQL仅将 root 用户视为默认数据库用户,第一个数据库事务/活动仅由 root 用户执行。

因此,对于任何需要访问 MySQL 数据库以通过 root 用户凭据获得访问权限的用户来说,它并不理想,根用户访问权限应保留给数据库管理员,然后他们将使用根用户凭据创建数据库用户并授予执行不同数据库查询的权限。

对于数据库管理员来说,避免使用 root 用户访问MySQL数据库,而是创建另一个用户并授予该用户与 root 用户相同的访问和执行权限也是理想的做法。

本文指南非常适合MariaDB、MySQL 企业版和MySQL 社区版用户,为了演示如何检查 MySQL 用户权限,我们将首先创建具有不同 MySQL 权限的不同测试用户。

创建一个新的 MySQL 用户

首先,使用以下命令从 Linux 终端获取对MySQL数据库的 root 访问权限:

$ mysql -u root -p

创建 MySQL 用户的命令语法如下:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'your_user_password';

上述用例适用于安装在本地机器上的 MySQL,如果您使用的是远程机器/服务器,则必须将'username'@'localhost'替换为'username'@'remote_machine_ip_address'。

如果您希望用户无需指定主机名或 IP 地址即可连接到任何 MySQL 安装系统,请遵循以下命令语法:

CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';  

现在让我们创建几个 MySQL 数据库用户。

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';  
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';  
CREATE USER 'user3'@'%' IDENTIFIED BY 'password3';  

请注意,这些用户用于演示目的,因此请考虑为您的生产环境创建更强的数据库用户密码。

授予新 MySQL 用户权限

下一步是为这些创建的数据库用户分配不同的角色(用户权限),这些用户权限与允许不同数据库用户执行的数据库操作有关。

我们可以将这些权限细分为:

  • 所有权限:分配此权限的用户可以执行所有数据库角色。
  • 插入:分配此权限的用户可以插入数据库表行数据。
  • Delete:被赋予此权限的用户可以删除数据库表行数据。
  • 创建:分配此权限的用户可以创建不存在的数据库和表。
  • Drop:分配此角色的用户可以删除现有的数据库和表。
  • 选择:分配此权限的用户可以读取数据库信息。
  • 更新:分配此权限的用户可以修改数据库表行数据。
  • 授予选项:分配此权限的用户可以修改其他数据库用户帐户的权限。

例如,如果我们要授予user1对所有数据库和表的所有权限,就像 root 用户一样,我们将执行以下命令:

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

如果我们要授予user2对特定数据库(例如mysql)的所有数据库表的所有权限,我们将执行以下命令:

GRANT ALL PRIVILEGES ON mysql.* TO 'user2'@'localhost';

如果我们要授予user3仅创建新 MySQL 用户的权限,我们将执行以下命令:

GRANT INSERT ON mysql.user TO 'user3'@'%';

在 MySQL 中检查用户权限

要检查用户的数据库权限,请参考命令语法:

SHOW GRANTS FOR username;

要检查这三个用户权限:

SHOW GRANTS FOR user1@localhost;
SHOW GRANTS FOR user2@localhost;
SHOW GRANTS FOR user3;

要撤销用户分配的权限,请参考命令语法:

REVOKE permission_type ON database.table FROM 'username'@'hostname'; 

例如;

REVOKE INSERT ON mysql.user FROM user3;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建一个新的 MySQL 用户
  • 授予新 MySQL 用户权限
  • 在 MySQL 中检查用户权限
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档