mysql - MySQL 5.7 存储过程
问题描述
我想知道知道我的 MySQL 5.7 root 密码的人是否可以执行存储过程、访问文件系统并远程破坏系统。
解决方案
Root,或者更准确地说是 SUPER 授权用户,可以执行任何程序。
对文件系统的访问受限于:
- https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_file_priv(动态 NO 意味着它在运行时无法更改,即使是 SUPER)。
假设他们可以利用 mysql 中的代码执行错误,总体而言,mysqld 服务器进程以 mysql 用户身份运行,并将受到该权限以及 Fedora 应用的 selinux 规则的限制。
SUPER 将能够填充文件系统(就像任何具有 INSERT 访问权限的用户一样),创建一团糟的数据库文件,但除此之外,任何一般的文件系统都非常有限。
这一切都适用于本地或远程。请记住,这root@localhost
只能在本地访问。root@%
是一个独特的远程用户。
推荐阅读
- mysql - 如何合并和重命名同一列上的两个字段名并显示结果?
- django - 一个输入上传多个文件
- html - 使用具有相对和绝对定位的 z-index
- django - Django:UserCreationForm 如何验证用户名字段
- apache - 阿帕奇梅隆配置
- java - 已解决:AEADBadTagException。我尝试了多种方法,现在将盐和初始化向量都存储在加密文件中
- arrays - BASH 将命令行参数存储为单独的变量
- regex - 正则表达式:直到第一次出现。如果没有出现匹配字符串
- java - 从代码中的另一个类错误访问数组
- javascript - 使用 Object.assign() 合并数据并创建数组