TODAY : / TOTAL :

[MYSQL] 접근 권한 부여하기

  • Share this:
반응형

 1. MYSQL 데이터베이스의 사용자 테이블에 직접 레코드 삽입하는 방법.

 * 관리자 권한으로 접속후 database 목록을 보면 mysql 이라는 데이터베이스 존재.
 해당 데이터내부를 살펴보면....  
  
  * 관리자 DB 내 user 테이블
   - ssl_@@@@@
   - x509_@@@@  => 보안관련
   - @@@@_priv =>  @@@@ 권한

   - x509_issuer : 디지털인증서 발행 주체
   - x509_subject : 디지털인증서 발행 대상..? ''(공백)입력시 기본알고리즘 사용.


   @ 계정 추가
   [ insert into user(host, user, password, ssl_cipher, x509_issuer, x509_subject) values(IP_ADDRESS, ID, password(PASSWORD),'','',''); ]  
    * 추가된 IP_ADDRESS 만 접근 가능
    * % 입력시 모든 ip 접속 가능
    * Ex) 192.168.0.% -> 아이피 범위 제한 가능 


   @ 계정 삭제
   [ delete from user where user='';  ]   => 사용자계정에 루트계정이 없는 계정은 접속 불가
  
   @ 권한 갱신
   [ flush privileges; ] => 수정한 권한 갱신.

  * 생성한 계정으로 접속
  * [ mysql -u ID -p ]
     -> Enter Password : 가 뜨면 비밀번호 입력.
  ## mysql -u ID -p PASSWORD 바로 입력해도 되나, 비밀번호가 노출되므로 2개로 나눠서 입력하는걸 권장한다.

  * 생성 권한 부여하기
   - 관리자 계정 내에서, mysql 데이터베이스 접근 - user 테이블 수정
   - [ update user set create_priv='Y' where user = ID ; ]  => 해당 ID에 생성 권한 부여

 

 2. Grant 를 통한 계정 부여 방법
   - 전체 데이터베이스에 한해서 권한 부여
   - grant를 이용하면, flush privileges;(권한 갱신) 를 따로 해줄 필요 없음.

   Ex) grant select on *.* to aaa@'localhost' identified by '1234';
   - 아이디 aaa 에 패스워드 1234를 가진 계정에 select 기능만을 부여.
   - *.* ( DB_NAME.TABLE_NAME) == 모든 데이터 베이스, 모든 테이블에 권한 부여

   Ex) grant select on test05.student to bbb@'localhost' identified by '4444';
   - 아이디 aaa에 패스워드 4444를 가진 계정은 test05의 student 테이블만 select 할수 있음.


 ㅇ 포트 열기
  * 방화벽 - 고급설정 - 인바운드 규칙 - 새규칙 - 포트 입력.

 ㅇ 다른 호스트로 접속
 [ mysql -h SERVER_IP -u ID -p PASSWORD ]

반응형

SEARCH

태그로 찾아보기