如何在Linux中检查MySQL用户权限?
因此,对于任何需要访问 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;
相关文章
- Linux下新建文件权限控制(linux新建文件权限)
- Linux下用户权限管理实践 (linux给用户分配权限)
- MySQL表权限管理指南(mysql表权限)
- 控制Linux系统中权限控制的重要性(linux中的权限)
- Linux:建立坚固的信任关系(linux建立信任关系)
- Linux下的退出线程实践:技巧与指引(退出线程linux)
- 权限Linux用户权限管理有多重要(linux下面的用户)
- MySQL访问权限:安全控制的关键(mysql访问权限)
- Linux 目录结构:一张图解读全部(linux目录结构图)
- Linux反向代理:改变网络访问方式(linux反向代理)
- 使用MySQL计算数据总和,轻松实现数据统计。(mysql计算总和)
- MySQL分组取最大值:如何在MySQL中使用分组和MAX函数来获取最大值?(mysql分组取最大)
- 服务器shell权限挑战极限:C语言获取Linux服务器Shell权限(c获取linux)
- 权限如何查看MySQL用户权限信息(mysql怎么查看用户)
- 用户权限如何限制Linux Root用户的权限(linux限制root)
- 掌握 MySQL 的唯一值技巧,完美解决数据冲突!(mysql唯一值)
- Linux文件递归权限处理:简单方法与实用技巧(linux递归文件权限)
- MySQL主从架构维护与修复(mysql 主从修复)
- Linux Shell:让你的操作更轻松(linux she ll)
- Linux权限设置简易指南(linux的权限设置方法)
- 管理MySQL权限管理:有效使用权限以保护数据(mysql %权限)
- 用Linux命令安全退出MySQL(linux退出mysql)
- 深入了解MySQL中的Time类型(mysql中time类型)
- MySQL使用UDF提升权限(mysql下udf提权)