MySQL使用MySQL.Net连接器授予
本文关键字:MySQL Net 使用 连接器 | 更新日期: 2023-09-27 18:21:47
我在一个名为qrtest_db的远程服务器上有一个数据库,通过putty我已经连接并赋予了它所有权限。在我的C#应用程序中,我可以访问它,进行日常事务、更新、插入删除等。当我展示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
权限参考
您使用all privileges
创建了一个'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