(最初在StackOverflow上被问到,但有人建议我在这里问)- MySQL 5.1.41社区(Windows 2003) -.NET/Connector6.1.3.0
我刚刚创建了一个新用户,而不是授予模式特权,而是只授予特定表的权限。换句话说,不存在全局或架构级别的权限集,只有权限集是针对两个特定表的。这似乎是一个完全可以接受的策略,根据我已经准备好的内容,MySQL将搜索:
以获得适当的权限。但是,当我试图使用这个新的用户帐户打开到服务器的连接时,我会收到一个拒绝权限的错误。
拒绝用户'xxxxxx'@'%‘访问数据库’xxxxxx‘
我试过几个不同的客户,结果是一样的。我还检查了服务器日志,没有其他详细信息,只有以下内容:
110816 10:23:15543连接xxxxxx@192.168.1.xxx在xxxxxxxx543上拒绝用户“xxxxx”@‘%’到数据库‘xxxxxx’的访问
如果我允许对所讨论的模式进行SELECT,我可以很好地连接。我是误解了许可制度的运作方式,还是应该像我想的那样运作?
发布于 2011-08-16 21:46:54
如果将手动插入的用户添加到mysql.user中,则需要在与该用户一起登录之前运行flush privileges。如果使用GRANT创建用户,则会自动为您完成刷新。
下面是一个插入示例:
INSERT INTO mysql.user (user, host, password)
VALUES ('user', 'localhost', password('yourpassword'));发布于 2011-08-17 04:48:51
错误消息告诉您需要知道的内容:无法访问数据库。如果不访问封闭的数据库,则无法访问表,因此向后者授予适当的权限。这有点像被授予对服务器上的文件的访问权,但拒绝了对服务器本身的访问。
https://serverfault.com/questions/301760
复制相似问题