본문 바로가기

mySQL

[mySQL]권한에러ERROR 1410 (42000): You are not allowed to create a user with GRANT

반응형
ERROR 1410 (42000): You are not allowed to create a user with GRANT

mysql에서 보안을 위해 유저를 만들고 권한을 줬다.

 

root로 로그인했는데도 저런 에러가 나타나서 정말 당황스러웠다..

이 문제가 나타난 상황은 이렇다.

 

mysql> create database [생성할 데이터베이스 이름];
mysql> create user [생성한데이터베이스이름]@[localhost또는%] identified by '[비밀번호]';
# '%' : 외부권한 허용
mysql> grant all privileges on [생성한데이터베이스].* to '[유저이름]'@'%' WITH  GRANT OPTION;

 

이 상황에서 에러가 나서 정말 당황스러웠다

 

왜지?하고 검색을 했는데,

해결방법은 간단했다.

루트 유저를 생성하고 다시 권한을 주면 된다.

 

mysql> create user 'root'@'%' IDENTIFIED BY 'root';
mysql> grant all privileges ON *.* TO 'root'@'%' with grant option;

 

루트 유저를 만들고, 권한을 준다.

 

mysql> grant all privileges on [데이터베이스이름].* to '[유저이름]'@'%' with grant option;

 

이러면 잘 추가된다.

 

근데 '%'가 외부권한을 허용한다는건데, root로 외부권한을 허용하는 건 상당히 위험할 수 있다.

그러니 datagrip에 다 연결하고 나서, 혹은 개인프로젝트를 빨리 끝내버리고

 

mysql> revoke all on *.* from root@'%';
mysql> flush privileges;

 

이걸로 외부권한을 없애자

 

끝!

반응형