2011-09-21 81 views
2

编辑:我重新安装了MySQL,并且这个已经修复了。不知道问题是什么。MySQL授予用户@'主机'不像预期的那样运行


我跑在MySQL以下命令,从命令行:

1. REVOKE ALL PRIVILEGES ON MyDB.* FROM [email protected]'%'; 
2. DROP USER [email protected]'%"; 
3. GRANT INSERT,SELECT,DELETE,UPDATE ON MyDB.* TO [email protected]'%' IDENTIFIED BY 'somepassword'; 
4. FLUSH PRIVILEGES; 

该用户的补助是:

GRANT USAGE ON 已确定BY PASSWORD GRANT SELECT,INSERT,UPDATE '用户' @ '%',删除 'MYDB'。* TO '用户' @ '%'

但后来我得到当我尝试以下错误消息做一个更新。

UPDATE command denied to user 'user'@'somehost' for table 'sometable' 

相关信息:

SELECT,INSERT,妥善删除所有工作。

我使用C#与连接器/ NET

“某”是同一个网络服务器(不同的计算机)上。

'sometable'在MyDB中。

如果我通过主机上的'用户'登录到服务器,更新查询就可以正常工作。

编辑:

如果我承认UPDATE,SELECT,INSERT,DELETE来[email protected]'somehost.net”,UPDATE查询没有问题的工作。

任何想法?

+0

你有一个用户对象是为''''''''somehost''定义的吗?如果MySQL存在,MySQL会看到和''''''%'不同的地方。 –

+0

你坏*坏*'GRANT',你为什么不表现自己? :) –

+0

@Jeremy,不,我不 – Ignacio

回答

1

重新安装固定问题的服务器。不知道问题是什么。

1

拿走所有的资助后,首先应该给用户使用权限。

GRANT USAGE on MyDB.* to 'user'@'localhost' 

Usage权限告诉该用户被允许使用的MySQL

+0

如果是这种情况,为什么SELECT和INSERT会正常工作?尽管如此,我想我忘了提及这一点。 – Ignacio

+0

如果你不打算给予任何特权,那么只需要将MyDB *上的** GRANT USAGE *赋予'user'@'localhost'**,这意味着您可以使用指定的MyDB连接到服务器。 – Vishal

+0

@Ignacio,我怀疑你有'user'@'somehost'。什么是'用户'@'主机'**返回的**显示GRANTS? – Vishal

相关问题