mysql에서 계정 생성, 삭제와
권한 할당, 회수에 대해 포스팅하겠습니다.
1. 테스트할 데이터베이스, 테이블을 확인합니다.
mysql |
mysql > show databases; mysql > use test; mysql > show tables; |
2. 접근 권한을 할당합니다.
전체 권한 할당하기
grant all privileges on [데이터베이스 명.테이블 명] to [계정 명]@'[접속 IP 주소]' identified by '[비밀번호]';
일부 권한 할당하기
grant [할당 권한] on [데이터베이스 명.테이블 명] to [계정 명]@'[접속 IP 주소]' identified by '[비밀번호]';
권한 조회하기
show grants for [계정 명]@'[접속 IP 주소]';
변경 사항 적용
flush privileges;
할당 권한 상세 옵션
할당 권한 | 권한 의미 |
CREATE, DROP, ALTER | 테이블에 대한 생성, 삭제, 변경 권한 |
SELECT, INSERT, UPDATE, DELETE | 테이블의 데이터를 조회, 삽입, 변경, 삭제에 대한 권한 |
ALL | 모든 권한 |
USAGE | 권한을 부여하지 않고 계정만 생성 |
IP 권한 상세 옵션
특수한 접속 IP 주소 | 의미 |
% | 모든 IP에서 접근이 가능 |
127.0.0.1 | 127.0.0.1, localhost 모두 자기 자신을 의미 하지만, IP 주소로 접근하게 되면 127.0.0.1로 사용하게 되고 OS 차원에서 접근하게 되면 localhost로도 접근이 가능하다. |
localhost |
mysql 5.X |
mysql > grant all privileges on test.GRANT_TEST to krujy@'localhost' identified by 'test1234!'; mysql > show grants for krujy@'localhost'; mysql > flush privileges; |
mysql 8.X |
mysql > create user krujy@'localhost'' identified by 'test1234'; mysql > grant all privileges on test.GRANT_TEST to krujy@'localhost'; mysql > flush privileges; |
3. 정상적으로 권한이 할당되었는지 확인
현재 krujy라는 계정은 test라는 데이터베이스에 속해있는
GRANT_TEST 테이블에 대해서만 모든 권한을 가지고 있습니다.
실제로 접속하여 권한을 확인합니다.
테이블 접근 권한은 모든 권한을 할당하였습니다.
정상적으로 접근이 가능한지 확인합니다.
mysql |
mysql > insert into GRANT_TEST (company, tel) values ("Samsung", "02-0000-0000"), ("LG", "02-1111-1111"), ("KAKAO", "02-2222-2222"); mysql > select * from GRANT_TEST; mysql > delete from GRANT_TEST; mysql > drop table GRANT_TEST; |
4. 접근 권한을 제거하는 방법
grant로 접근 권한을 할당했다면
revoke로 접근 권한을 회수할 수 있습니다.
root 계정으로 다시 접속합니다.
mysql -u root -p
revoke [할당 권한] on [데이터베이스 명].[테이블 명] from [계정 명]@'[접속 IP 권한]';
mysql |
mysql > show grants for krujy@'localhost'; mysql > revoke all on test.GRANT_TEST from krujy@'localhost'; mysql > flush privileges; |
추가로 계정을 삭제하고 싶다면 아래와 같이 입력합니다.
drop user [계정 명]@'[접속 IP 주소]';
mysql |
mysql > drop user krujy@'localhost'; mysql > show grants for krujy@'localhost'; |
해당과 같이 계정 생성, 계정 삭제, 권한 할당, 권한 회수를 할 수 있습니다.
'Database > mysql' 카테고리의 다른 글
[mysql] Database 백업, 복원하는 방법 (0) | 2021.08.23 |
---|---|
[mysql] 이중화 설정 방법 (replication) (0) | 2021.08.04 |
[mysql] CONCAT 사용하여 데이터 합치기 (0) | 2021.07.23 |