mysql - 多个主机名和多个权限?

标签 mysql linux security ubuntu

我想将 127.0.0.1 映射到多个名称而不是本地主机的标准方式。所以我在 Ubuntu 中的/etc/hosts 文件将包含以下条目:

127.0.0.1 localhost
127.0.0.1 localhost:extra1
127.0.0.1 localhost:extra2

现在,在 MySQL 中,我想要一个名为 karthick 的用户,它应该具有不同的权限。

select user,host from users;

上面的语句显示

 karthick localhost:extra1;
 karthick localhost:extra2;

我的问题:

我无法使用

登录
mysql -u karthick -h localhost:extra1 -p

会出现什么问题?

问题背后的动机

我想登录如下

登录1:

mysql -u karthick -h localhost:extra1 -p

登录 2:

mysql -u karthick -h localhost:extra2 -p

我希望登录 1 和登录 2 具有不同的权限集...希望这是可能的

最佳答案

在 mysql 接收到连接时,它唯一需要识别远程系统的就是 IP 地址。然后它必须执行“反向 dns”查找以将请求系统的 IP 地址转换为主机名,以便它可以在授权表中查找主机名。虽然您可以将多个主机名映射到一个 IP 地址,就像您所做的那样,但 mysql 无法知道最初指定了哪个主机名。那时它只有 127.0.0.1,DNS 解析器将返回名称“localhost”。即使改变了它,你也只能给它一个名字,所以你的方案将不起作用。

然而,您可以为您的网络适配器提供多个不同的 IP 地址。我不知道在 Ubuntu 上设置它的细节,但它应该相对容易。然后您可以设置多个主机名,每个主机名都有自己的 IP,可以连接回您的系统。在您的 mysql 设置中,在 GRANT 命令中指定 IP 地址而不是主机名,以避免与 rDNS 混淆。

关于mysql - 多个主机名和多个权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3540051/

相关文章:

mysql - PHP Mysql 唯一列的重复条目错误

python - 在ubuntu 18.04上安装python 2.7

c++ - 预处理器指令对敏感信息安全吗?

flash - 将 HTTPS 与 App Engine 结合使用以确保来自 Flash swf 的安全轮询结果

php - 当我尝试提交我在 YouTube 上关注的此应用程序的信用卡付款信息时,我不断收到 fatal error

mysql - 将 SQL 列类型设置为 varchar(50),只接受整数

mysql - 在Python中乘法

c - Linux 管道 : Bad file descriptor in functions read and write

c++ - 在 ubuntu 中使用 make 命令重新编译时出现问题

javascript - javascript 游戏中的 ajax 安全性