2011-09-06 1 views
1

만드는 사용자 MySQL의 관리자를 통해 MySQL의 명령 줄을 연결하는 권한을 설정하지만, 뿌리는 일 는 MySQL의에서,

grant all on *.* to new_user; 

을 발행, 온라인 제안 다음 mysql 명령 줄

로그인 할 수없는 있지만, 보안 현명한, 그래서 new_user여전히 연결할 수 지금

revoke all on *.* from new_user; 

을 발행 엉망이었다 하지만 보안은 mysql 관리자에 설정된대로 정상적으로입니다

이것은 완전히 hocus-pocus입니다. 실제로 무슨 일이 벌어지고 있으며, 어떻게 로그인을 활성화합니까?

이것은 MySQL 관리자 문제로 보입니다 (감사합니다 @marco). 동일한 GRANT가 mysql 커맨드 라인에서 발행되면, 사용자 로그인 할 수 있습니다; 그러나이 보조금은 관리자의 사용자 을 발행 할 수있는 사용자, 예를 들어, SELECT 권한으로 MySQL의 로그인 액세스 권한을 부여합니다

@marco가 지적했듯이, 어떤 액세스에서하지 로그 - 하지만가 필요합니다. msql 명령 줄에 입력해야합니다.

+0

serverfault.com에서 사용해보십시오. 그리고 당신은 연결을 설정하는 방법에 대한 기본 정보를 MySQL Administrator에서 작성된 – ajreal

답변

1

처음으로 GRANT을 사용하면 사용자가 자동으로 만들어지기 때문입니다. 권한을 취소하면 사용자는 여전히 남아 있습니다.
확인하십시오. link.

먼저 사용자에게 실제로 필요한 권한 만 부여해야합니다.
두 번째 : 사용자가 보거나 작업해야하는 테이블에만 사용자 액세스 권한을 부여하십시오.
예 : 수정 됨

GRANT SELECT,INSERT,UPDATE ON mydb.* TO 'jeffrey'@'localhost'; 

또는

GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost' 
IDENTIFIED BY PASSWORD 'sdsd'; 

:
그냥 무슨 말인지 증명 :
는 MySQL의 콘솔 (mysql -u root -p)를 입력하고 입력

USE mysql; 
SELECT * FROM user; 

요 MySql이 내부에 있음을 알 수 있습니다.
글쎄, 지금은 아직 존재하지 않는 사용자에게 당신이 원하는대로 GRANT을 사용하십시오; SELECT * FROM user;을 반복하십시오 : 새로운 사용자가 생성 된 것을 볼 수 있습니다 !!

+0

사용자를 제공하지 않았습니다. 분명히 거기에 세워진 privs가 올바르게 가져갔습니다. –

+0

또한'create user'가 사용자 생성에 사용되었다고 생각합니다. –

+0

@cc young : 예, CREATE USER를 사용하여 사용자를 생성 할 수 있습니다; 어쨌든'GRANT'를 사용하면 사용자에게 권한이 할당됩니다. 그렇지 않으면 사용자가 생성되고 권한이 할당됩니다. 추측 해보십시오. – Marco