사용자 데이터베이스 권한 설정하기

1. 권한 부여 기본 명령어

사용자에게 데이터베이스에 대한 권한을 부여하려면 다음 명령어를 사용합니다:

sql
GRANT 권한_유형 ON 데이터베이스명.* TO '사용자명'@'호스트';

주요 항목:

  • 권한_유형: 사용자에게 부여할 권한 (예: SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES 등).
  • 데이터베이스명: 권한을 부여할 데이터베이스 이름.
  • *는 해당 데이터베이스의 모든 테이블을 의미합니다.
  • ‘사용자명’@’호스트’: 권한을 설정할 사용자 계정과 접속 호스트. localhost는 해당 서버에서만 접속 가능하며, %는 모든 IP를 허용.

예시

(1) 특정 데이터베이스에 모든 권한 부여

sql
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
  • 데이터베이스 wordpress의 모든 테이블에 대해 사용자 wp_user에게 localhost에서 접속 가능한 모든 권한을 부여.

(2) 특정 권한만 부여

  • 읽기 권한만 부여:
sql
GRANT SELECT ON wordpress.* TO 'wp_user'@'localhost';
  • 읽기 및 쓰기 권한 부여:
sql
GRANT SELECT, INSERT, UPDATE ON wordpress.* TO 'wp_user'@'localhost';

(3) 특정 테이블에 권한 부여

sql
GRANT SELECT, INSERT ON wordpress.posts TO 'wp_user'@'localhost';
  • 데이터베이스 wordpressposts 테이블에 대해 특정 권한만 부여.

2. 권한 적용

권한 부여 후에는 변경 사항을 적용해야 합니다:

sql
FLUSH PRIVILEGES;

3. 사용자의 권한 확인

특정 사용자의 권한을 확인하려면 다음 명령어를 실행합니다:

sql
SHOW GRANTS FOR '사용자명'@'호스트';

예:

sql
SHOW GRANTS FOR 'wp_user'@'localhost';

4. 권한 회수

사용자로부터 특정 권한을 회수하려면 다음 명령어를 사용합니다:

sql
REVOKE 권한_유형 ON 데이터베이스명.* FROM '사용자명'@'호스트';

예:

  • 모든 권한 회수:
sql
REVOKE ALL PRIVILEGES ON wordpress.* FROM 'wp_user'@'localhost';
  • 특정 권한 회수:
sql
REVOKE INSERT, UPDATE ON wordpress.* FROM 'wp_user'@'localhost';

5. 특정 데이터베이스 접근 금지

데이터베이스에 대한 모든 접근을 금지하려면 사용자 권한을 삭제합니다:

sql
DROP USER '사용자명'@'호스트';

참고

  • 권한 설정은 보안과 관련이 있으므로 필요한 권한만 부여하세요.
  • GRANTREVOKE 명령을 통해 세부적인 데이터베이스 접근 정책을 구현할 수 있습니다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다