gpt4 book ai didi

c# - 使用 MySQL .Net 连接器的 MySQL Grant

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:24 25 4
gpt4 key购买 nike

我在名为 qrtest_db 的远程服务器上有一个数据库,我已通过 putty 连接并授予它所有权限。在我的 C# 应用程序中,我可以正常访问它以进行日常操作、更新、插入删除等。当我做 SHOW GRANTS 时,我得到以下信息......

GRANT ALL PRIVILEGES ON *.* TO 'root'@'myIpAddress' IDENTIFIED BY PASSWORD 'myPasswordencrypted' 
GRANT ALL PRIVILEGES ON `qrtest_db`.* TO 'root'@'myIpAddress'

但如果我尝试在 C# 中运行 GRANT 语句,如下所示。 . .

"GRANT USAGE ON qrtest_db.* to 'root'@'" + someIPAddress + "' IDENTIFIED BY 'myPassword'";

然后在 cmd.ExecuteNonQuery 上我收到了消息。 . .

拒绝用户 'root'@'myIPAddress' 访问数据库 'qrtest_db'

有人知道为什么会这样吗?是否不允许通过 .Net 连接器远程授权?我可以整天坐在控制台前授予权限。

最佳答案

您没有GRANT权限。
因为 ALL PRIVILEGES 不包含 GRANT 权限。 Reference

您创建了一个具有所有权限'root'@'myIpAddress' 用户。它不包含 GRANT。然后您使用这个新创建的用户 ('root'@'myIpAddress') 连接到数据库服务器。您的 C# 应用程序正在使用 'root'@'myIpAddress' 用户连接到数据库服务器。当您通过 C# 输入 GRANT 命令时,它会失败。因为此用户 ('root'@'myIpAddress') 没有 GRANT 选项。您不是那样创建的。

您应该已经使用这些语句创建了用户(附加了 WITH GRANT OPTION)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'myIpAddress' IDENTIFIED BY PASSWORD 'myPasswordencrypted' with GRANT OPTION
GRANT ALL PRIVILEGES ON `qrtest_db`.* TO 'root'@'myIpAddress' WITH GRANT OPTION

关于c# - 使用 MySQL .Net 连接器的 MySQL Grant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com