mysql 유저 추가, 권한 설정

Posted by Who1sth1s
2016. 12. 4. 22:57 Mysql


IDE: Ubuntu 14.04 LTS 64bit

Shell: Bash



오늘은 mysql 에서 특정 유저 추가, 권한 설정에 관해 다뤄보도록 하겠습니다.





일단 저번에 전체 유저를 등록했기 때문에 등록된 정보를 초기화 시켜주었습니다. 


그런 다음 다시 유저를 등록해줬습니다. 


** 중괄호만!! 실제 쿼리에서 제외시켜주셔야 됩니다.


INSERT INTO {DB이름}.user (host,user,password) VALUES ('{IP 주소 or 대역폭}', '{생성할 계정 ID}', password('{비밀번호}'));


위의 쿼리에서 특정 IP만 허용하고 싶으시면 host 부분에 192.168.0.230 이런식으로 입력하시면 되고 특정 대역폭만 허용하고 싶으시면 192.168.% 이런식으로 입력하시면 됩니다. 전체일 경우에는 % 만 입력하시면 됩니다.


그런다음 FLUSH PRIVILEGES; 명령어로 즉시적용 시켜주면 됩니다.




짜잔~ 저는 이런식으로 등록했습니다.





이제 맥으로 넘어와서 테스트 계정으로 접속했습니다. 현재 자신이 접속한 유저를 보는 방법은 SELECT user(); 입니다.





자 다음은 계정권한 설정인데요. 원래 이 설정을 계정을 만들면서 동시해 해주는 경우가 많은데 원활한 설명을 위해 따로 빼봤습니다.


mysql 에서 권한 설정은 GRANT로 해주는데요. 전체 쿼리 사용 가능하게도 설정해줄 수 있고 특정 DB에만 접근 가능하게도 설정 가능합니다. 간단하게 알아보겠습니다.


** 중괄호만!! 실제 쿼리에서 제외시켜주셔야 됩니다.


GRANT {사용 가능하게 할 SQL(?) 문} ON {사용 가능하게 할 DB이름}.{사용 가능하게 할 TABLE 명} '{user}'@'{host}' IDENTIFIED BY '{password}'


사용 가능하게 할 SQL 문에는 전체 사용가능하게 하려면  ALL PRIVILEGES 를 넣어주면 되고 그게 아니라면 SELECT, UPDATE, INSERT 이런식으로 넣어주면 넣어준 쿼리만 사용 가능하게 할 수 있다. 또는 UPDATE(name) 이라고 하면 name 이라는 컬럼에 한해서만 UPDATE 문을 허용시켜 준다는 의미다.




위에 처럼 권한설정을 하면 CREATE 문이 권한 에러가 나는 것을 확인할 수 있다.




그러나 SELECT 문은 잘 작동되는 것을 확인할 수 있다.



-------------------------------------------------------------------------------------------------------------------------------------------------------

후기 : 중간에 쿼리 권한 설정해줄 때 고생을 많이 했다. 다른 블로그에서 참고를 많이 했는데 거기서는 user부분과 host 부분을 따옴표로 감싸주질 않고 있었다.

         그래서 자꾸 1064 에러가 나서 설마해서 따옴표를 넣은 것이 잘 적용됐던 것 같다. 그리고 사실 mysql 접속이 자꾸 password 에러가 나서 새벽 6시까지 삽질하다가

         마무리 못 짓고 잠들었는데 저녁시간에 맑은 정신으로 다시 해보니까 잘 되는 것 같다. 야근할바엔 다음날 와서 하는게 시간상 더 절약된다라는 의미가 더 깊게 와 닿

         았다.

-------------------------------------------------------------------------------------------------------------------------------------------------------



'Mysql' 카테고리의 다른 글

mysql log보는법  (0) 2016.12.06
mysql workbench 설치하기  (0) 2016.12.05
Linux 에서 mysql 설치하기!  (0) 2016.11.25