Language(R, Python, SQL)/SQL

[SQL] MysQL 데이터베이스 권한 부여

dtstory 2022. 12. 19. 20:00

데이터베이스를 만들고, 데이터베이스 내부에 있는 데이터를 다른 사용자에게 공유하고자 할 때, root 계정을 주는 방식으로 모든 권한을 넘길 수 있다. 하지만, 특정데이터베이스 혹은 특정 테이블에 대한 데이터 정보만 허용하게끔하고자 할때는 어떻게 해야할까? 아래의 방법대로 하게되면 간단하게 유저에 대한 접근 권한을 명령할 수 있다.

 

grant all privileges on DB명.table명 '계정명'@'%' identified by '비밀번호';

 

 

grant all privileges on mydb.mytable 'myaccount'@'%' identified by '123456';

 

DBeaver 혹은 HeidiSQL 같은 DB툴 내에 쿼리를 편집기를 키고, 해당 명령을 한 후 접속해보자.

 

 

아래 그림과 같이, mydb 라는 데이터베이스 내에, mytable에 대한 접근 권한이 생긴 것을 확인할 수 있다.

 

특정 데이터벵스 또는 테이블이 아니라, 모든 데이터베이스, 모든 테이블에 대한 접근권한을 허용하고 싶다면 * 를 적절하게 사용하면된다. 예시는 아래와 같다.

 

 

- 모든 데이터베이스 허용 예시

grant all privileges on *.* 'myaccount'@'%' identified by '123456';

 

- 특정 데이터베이스 모든 테이블 허용 예시

grant all privileges on mydb.* 'myaccount'@'%' identified by '123456';

 

728x90