社区编辑申请
注册/登录
如何在Linux中检查MySQL用户权限?
数据库 MySQL
在任何操作系统上首次/全新安装 MySQL仅将 root 用户视为默认数据库用户,第一个数据库事务/活动仅由 root 用户执行。

在任何操作系统上首次/全新安装 MySQL仅将 root 用户视为默认数据库用户,第一个数据库事务/活动仅由 root 用户执行。

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

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

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

创建一个新的 MySQL 用户

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

 

  1. $ mysql -u root -p 

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

 

  1. CREATE USER 'username'@'localhost' IDENTIFIED BY 'your_user_password'

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

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

 

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

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

 

  1. CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';   
  2. CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';   
  3. CREATE USER 'user3'@'%' IDENTIFIED BY 'password3';   

 

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

 

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

 

授予新 MySQL 用户权限

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

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

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

授予选项:分配此权限的用户可以修改其他数据库用户帐户的权限。

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

 

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

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

 

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

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

 

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

在 MySQL 中检查用户权限

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

 

  1. SHOW GRANTS FOR username; 

要检查这三个用户权限:

 

  1. SHOW GRANTS FOR user1@localhost; 
  2. SHOW GRANTS FOR user2@localhost; 
  3. SHOW GRANTS FOR user3; 

 

 

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

 

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

 

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

例如;

 

  1. REVOKE INSERT ON mysql.user FROM user3; 

 

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

 

 

责任编辑:华轩 来源: 今日头条
相关推荐

2022-04-02 20:45:04

Hi3516开发板操作系统鸿蒙

2022-05-18 10:58:36

LinuxKali Linux

2022-05-16 13:37:12

Sysrv僵尸网络微软

2022-04-06 06:35:58

进程命令CPU

2022-04-01 10:08:21

SQL 优化MySQL数据库

2022-05-17 11:06:44

数据库MySQL系统

2022-05-14 08:05:18

Linux内存管理

2022-03-16 14:45:18

MySQL慢查询数据库

2022-04-05 11:29:40

Linux安装操作系统

2022-05-07 11:08:50

Linuxapt 命令

2022-04-23 16:30:22

Linux磁盘性能

2022-04-14 10:10:59

Nginx开源Linux

2022-05-09 07:08:14

LinuxBashShell

2022-04-25 08:45:38

Linux 发行版旧计算机PC

2022-04-27 09:55:12

Linux误删文件

2022-04-22 11:16:35

Linux工具命令

2022-04-25 11:27:34

LinuxCPU

2022-04-18 10:45:25

红帽CentOSRHEL

2022-02-17 23:44:33

2022-04-26 08:10:33

MySQL存储InnoDB

同话题下的热门内容

关于MySQL数据库性能优化方法,看这一篇文章就够了分库分表会带来读扩散问题?怎么解决?面试官问我 InnoDB 的物理存储结构!浅析MySQL日志体系聊聊索引失效的经典场景InnoDB B-TREE 索引怎么定位一条记录?MySQL常用查询Databases和Tables爷青回,Canal 1.1.6来了,几个重要特性和bug修复

编辑推荐

MySQL集群搭建详解如果对MySQL还停留在这个印象,就out了防止服务器宕机时MySQL数据丢失的几种方案MySQL innodb引擎备份工具XtraBackup之二(数据库全备)MySQL优化: Slave延迟很大的优化方法总结
我收藏的内容
点赞
收藏

51CTO技术栈公众号