💁🏻♂️ MySQL의 계정 생성 및 권한 부여
🤔 계정 생성이란?
- MySQL을 설치하게 되면 가장 먼저 사용하는 계정이 root 계정입니다.
→ root 계정의 경우, 관리자 계정이기 때문에 DB에 대한 모든 권한을 가지고 있습니다.
→ 하지만, 실제 서비스에 사용되는 DB는 DBA가 root 권한을 가지고 있고, DB를 이용하는 개발자 및 사용자들은 역할에 맞도록 권한을 부여 받아 사용합니다.
👉🏻 DB 접속 및 계정 조회
- mysql의 사용자 목록을 조회하기 위해 mysql의 기본 스키마인 mysql안에 user 테이블에서 다음과 같은 명령어를 통해 조회할 수 있습니다.
💻 코드
//mysql root 권한 접속
mysql -u root -p
//mysql 스키마 선택
use mysql;
//사용자 목록 조회
select user,host from user;
👨🏻🏫 추가설명- MySQL 8.0 버전부터의 시스템 계정과 일반 계정의 구분
🥈사용자 생성
- 사용자 생성시에는 create명령어를 사용해서 사용자를 추가할 수 있습니다.
💻 코드
create user '사용자'@'host' identified by '비밀번호';
//ex1) 내부 접근을 허용하는 사용자 추가
create user 'test'@'localhost' identified by '0000';
//ex2) 외부 접근을 허용하는 사용자 추가
create user 'test'@'%' identified by '0000';
//ex3) 특정 ip만 접근을 허용하는 사용자 추가
create user 'test'@'123.456.789.100' identified by '0000';
//ex4) 특정 ip 대역을 허용하는 사용자 추가
create user 'test'@'192.168.%' identified by '0000';
🥉 사용자 삭제
- drop 혹은 delete 명령어를 통해, 사용자를 삭제할 수 있습니다.
💻 코드
drop user '사용자';
//또는
delete from user where user='사용자';
//예시
drop user 'test'@'localhost';
🎮 사용자 권한 부여
- 사용자에게 권한을 줄 때는 grant 명령어를 통해 권한을 줄 수 있습니다.
💻 코드
// 모든 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on *.* to '사용자'@'localhost';
// 특정 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on DB이름.* to '사용자'@'localhost';
// 특정 데이터베이스의 특정 테이블에 모든 권한을 줌
grant all privileges on DB이름.테이블명 to '사용자'@'localhost';
// 특정 데이터베이스의 특정 테이블에 select 권한을 줌
grant select on DB이름.테이블명 to '사용자'@'localhost';
// 특정 데이터베이스의 특정 테이블에 select, insert 권한을 줌
grant select, insert on DB이름.테이블명 to '사용자'@'localhost';
// 특정 데이터베이스의 특정 테이블의 컬럼1과 컬럼2의 update 권한을 줌
grant update(컬럼1, 컬럼2) on DB이름.테이블명 to '사용자'@'localhost';
👨🏻🏫 추가설명- MySQL 8.0 버전부터의 권한 설정
👨🏻🏫 추가자료 - 사용자 생성과 권한 부여 한번에 하기(MySQL 8.0 버전에서는 x)
- MySQL 8.0 버전 부터는 사용자 생성과 권한을 한번에 하기가 불가능합니다.
- 반면 MySQL 5.7 버전은 사용자 생성과 권한 부여를 한번에 가능합니다.
🈷️ 권한 즉시 반영
- 변경한 권한을 즉시 반영시켜주려면 아래 명령어를 실행시켜주면 됩니다.
💻 코드
FLUSH PRIVILEGES;
📒 Reference
'데이터 베이스 > MySQL' 카테고리의 다른 글
MySQL 엔진 아키텍처 (0) | 2023.05.21 |
---|---|
2. MySQL과 Workbench 설치하기 (0) | 2022.11.11 |
1.DBMS 소개와 MySQL 소개 (0) | 2022.11.11 |