글을 시작하기에 앞서
댓글을 달아주신 분들의 의견중
root 계정에 모든 권한 허용시
DB 가 외부에 노출이 되면 위험하다는 의견이 있었습니다.
만약 해당 사항이 있으시다면 이점 참고하여 주시기 바랍니다.
MYSQL 에서 DB를 생성하고 유저에게 권한을 주려고 할 때
root 로 접속했음에도
ERROR 1410 (42000): You are not allowed to create a user with GRANT
라는 에러를 내뿜으며 유저에게 권한주기 권한이 없다는 에러가 발생한 적이 있었습니다.
약간의 구글링을 통하여 해결방안을 찾아냈습니다.
우선
CREATE DATABASE testDB;
쿼리로 데이터베이스를 생성해 준 후
CREATE USER testUser@localhost identified by 'password';
쿼리로 유저를 생성 해 주었습니다.
그리고
GRANT ALL PRIVILEGES ON testDB.* TO 'testUser'@'localhost' WITH GRANT OPTION;
쿼리를 날려서 권한을 주려고 했는데
위와같은 에러가 발생을 하였습니다.
해결방안은
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
위의 두 쿼리로 루트 계정을 생성하고
생성된 계정에 먼저 권한을 부여 한 후
권한을 주는 쿼리를
GRANT ALL PRIVILEGES ON testDB.* TO 'testUser'@'%' WITH GRANT OPTION;
로 수정하여 권한을 부여하니 잘 동작하였습니다.
+ 추가
댓글을 달아주신 분들에 의하면
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
root권한을 가진 유저를 만드는 거라 외부로 노출된 db이면 상당히 위험합니다.
프로젝트나 내부에서만 쓰이는 거면 괜찮을 수도 있지만 그 외에는 안됩니다.정말 필요한 작업만하시고 외부 권환하고 삭제하셔야 합니다.
라고 알려주셨습니다.
꼭 필요한 경우만 사용하시고 삭제하시거나
혹시나 더 좋은 해결 방안이 있으신 분들은
댓글로 알려주시면 감사하겠습니다.
'개발 > SQL' 카테고리의 다른 글
대용량 sql 파일 임포트 시키기 (0) | 2019.02.26 |
---|---|
MYSQL 환경변수 등록 및 원격 IP로 접속하는 방법 (1) | 2019.02.15 |
MYSql Developer tool 로 접속이 안될 때 client does not support authentication protocol requested by server consider upgrading mysql client (0) | 2019.02.06 |
Mysql ALTER TABLE MODIFY COLUMN 여러개의 행을 동시에 수정하기 (0) | 2019.02.01 |
윈도우 10 오라클 11g database 설치하기 (0) | 2019.01.26 |