2011-09-21 4 views
2

EDIT : MySQL을 다시 설치했고이 자체가 수정되었습니다. 그 쟁점이 뭔지 전혀 모르겠다. User @ 'host'에 대한 MySQL GRANT가 예상대로 작동하지 않습니다.


나는 명령 줄에서 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; 

사용자에 대한 보조금은 다음과 같습니다 ON

GRANT 사용법. '사용자'@ '%'PASSWORD GRANT SELECT, INSERT, UPDATE에 의해 식별 '보기 MyDB'ON DELETE에. * '사용자'@ '%'

그러나 나는 다음과 같은 오류 메시지가 시도하려면 업데이트를 할 수 있습니다.

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

관련 정보 :

SELECT, INSERT, 제대로 모든 작업을 삭제합니다.

내가

'somehost'

NET 커넥터 /와 C#을 사용하고 서버 (다른 컴퓨터)와 같은 네트워크에 있습니다.

'sometable'은 MyDB에 있습니다.

호스트 컴퓨터에서 '사용자'로 서버에 로그인하면 업데이트 쿼리가 제대로 작동합니다.

편집 :

내가 UPDATE를 부여하면, SELECT는 INSERT, '[email protected]'somehost.net하는 DELETE가, UPDATE 쿼리가 문제없이 작동합니다.

아이디어가 있으십니까?

+0

사용자 객체가 ''사용자 '@'somehost''에 대해 정의되어 있습니까? MySQL은''user '@'% ''와 다른 것으로 보일 것이다. –

+0

나쁜 * 나쁜 *'부여 ', 왜 당신 자신을 행동하지? :) –

+0

@ 제레미 아니, 아니야 – Ignacio

답변

1

를 사용할 수있는 서버를 알려줍니다. 문제가 무엇인지 확실하지 않습니다.

1

모든 권한을 취소 한 후에는 먼저 해당 사용자에게 사용 권한을 부여해야합니다.

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

사용 권한이 사용자가 다시 설치가 문제를 해결 MySQL의

+0

그렇다면 왜 SELECT와 INSERT가 제대로 작동 할까? 나는 그것을 명백하게 언급하는 것을 잊었다 고 생각한다. – Ignacio

+0

권한을 부여 할 계획이 아니라면 ** MyDB. *에서 'GRANT USAGE'를 'user'@ 'localhost'**에게 부여해야합니다. 즉, MyDB가 지정된 서버에 연결할 수 있습니다. – Vishal

+0

@Ignacio, 나는 당신이 '사용자'@ 'somehost'를 가지고 있는지 의심 스럽다. ** 'somehost'** 반환에 대한 ** 표시 보조금은 무엇입니까? – Vishal