2014-03-07 1 views
0

내가 좋아하는 여러 호스트에서 액세스 보조금 내 MySQL을 DB에 사용자를 추가하기위한 보조금을 가진 사용자를 삭제? 나는 시도했다 :MySQL은 여러 호스트

drop user 'dbuser'@'%'; 
ERROR 1396 (HY000): Operation DROP USER failed for 'dbuser'@'%' 

drop user 'dbuser'; 
ERROR 1396 (HY000): Operation DROP USER failed for 'dbuser'@'%' 

show grants for 'dbuser'; 
ERROR 1141 (42000): There is no such grant defined for user 'dbuser' on host '%' 

나는 % wouzld가 와일드 카드로 취급 될 것이라고 생각했다. Butr있는 유일한 방법처럼, 모든 호스트의 사용자를 삭제하는 것 : 사용자를 제거하기 위해 좀 더 편리한 방법은

drop user 'dbuser'@'host1'; 
drop user 'dbuser'@'host2'; 
drop user 'dbuser'@'host3'; 
... 

이 아닌가? 당신이> = 5.0.2 MySQL을 사용하는 경우 다음과 같이

+0

당신이 원하는 것을 할 수있는 하나의 명령 모르겠어요 실행 그러나 이것은 개별 명령문을 생성 할 것입니다 : mysql.user에서 drop_statement로 concat ('drop user \', 사용자, '\'@ \ '', 호스트, '\'; ')를 선택하십시오. – lusional

답변

1

, 당신은 계정 및 권한을 제거 할 수 있습니다

DROP 사용자 사용자;

문은 모든 권한 테이블에서 계정의 권한 행을 제거합니다.

(에서 : https://dev.mysql.com/doc/refman/5.0/en/drop-user.html)

+1

사실,이 질문에 대한 답변이 아닙니다. 연결된 페이지에서 : "계정 이름의 사용자 이름 부분 만 지정하면 '%'의 호스트 이름 부분이 사용됩니다." 문제는 동일한 이름이지만 다른 호스트 부분을 가진 모든 사용자를 삭제하는 방법입니다. – lusional

0

MySQL의 < = 5.6.x

select user,host,password from mysql.user; 

MySQL의> = 5.7.x는 롤백 계획을 작성해야합니다 위에

select user,host,authentication_string from mysql.user; 

는 AND 많은 사용자를 삭제하고 시간을 절약하기를 원한다면 항상 필요합니다. 이제 귀하의 질문에

:

select concat("DROP USER ","'",user,"'@'",host,"';") from mysql.user where host like "127.0.%" or host like "192.168%"; 

플랫폼에 따라 출력을 파일로 부착하는 방법을 탐구하고