본문 바로가기

Data Base

Mysql- 권한 설정

유저 생성

- localhost (내부 접근만 허용)

create user '{id}'@'localhost' identified by '{pw}'; // localhost를 생성한다. 내부 ip만 접속 가능

 localhost로 유저를 생성하는 경우 내부 ip로만 접속이 가능하다. 

- % (외부 접근 허용)

create user '{id}'@'%' identified by '{pw}' // 외부 ip에서도 접근이 가능

 외부에서도 접속이 가능하게 하려면 @뒤를 '%'로 바꿔주자.

권한 설정 

grant {부여할 권한들} privileges {db명}.{테이블명} to '{id}'@'{host}' identified by '{pw}' [with grant option];
flush privileges;  // 권한 부여 후 변경사항 저장

 생성한 유저에게 grant 키워드를 이용하여 권한을 설정할 수 있다.

  EX)

grant all privileges test_db.* to 'test'@'localhost' identified by 'password' with grant option;
flush privileges;

 test_db 데이터베이스에 있는 모든 테이블(*)에 'test' 유저에게 로컬에서 접속 가능하게 한다. 그리고 모든 권한을 부여한다.

또한 with grant option 키워드를 통해서 해당 유저는 다른 유저에게 자신이 가진 권한을 부여할 수 있다.

 

호스트를 '%'로 바꾼다면 원격 접속 권한을 준다.

 

 

{ } : 상황에 따라 변경 가능한 값

[ ] : 생략 가능

'Data Base' 카테고리의 다른 글

DB- 테이블 외래키 제약조건  (1) 2023.08.18