[MySQL] 계정 및 DB생성/권한관리

사용자 계정 추가, 삭제, 조회

MySQL의 기본 관리자 계정은 root 이며, 패스워드는 설치시에 설정한다.

mysql -uroot -p 명령문 후 패스워드를 입력하여 루트계정으로 접속한다.

image

사용자 계정을 생성 및 삭제하는 구문은 다음과 같다.

CREATE USER '사용자ID'@'host';	#사용자 추가
CREATE USER '사용자ID'@'host' IDENTIFED BY '패스워드';	  #패스워드를 사용하는 사용자 추가
CREATE USER '사용자ID'@'%' IDENTIFIED BY '패스워드';	#모든 외부 접근을 허용하는 사용자 추가

DROP USER '사용자ID'@'host';	#계정 삭제

사용자 정보는 mysql DB에 저장된다. SELECT User FROM user; 명령어로 현재 MySQL 에 존재하는 계정 리스트를 출력할 수 있다.

DB 생성, 삭제, 조회

MySQL에서는 DB와 스키마를 동일시한다. DB를 생성 및 삭제하는 구문은 다음과 같다.

CREATE DATABASE DB명 DEFAULT CHARACTER SET UTF8;	#UTF-8을 사용하는 DB생성

SHOW DATABASES;		#DB 목록 조회

DROP DATABASE DB명;	#DB 삭제

사용자에게 DB 사용권한 부여, 삭제, 조회

일반 계정은 기본적으로 DB 생성 권한이 없다. 루트로 DB를 생성한 후, 해당 DB를 사용할 수 있도록 사용자에게 권한을 부여해야 한다.

권한 부여는 GRANT 권한 ON DB명.테이블 TO '사용자ID'@'host'; 형식으로 이루어지며

권한 삭제는 REVOKE 권한 ON DB명.테이블 FROM '사용자ID'@'host'; 형식이다.

마지막에 FLUSH PRIVILEGES; 명령어를 통해 변경 내용을 메모리에 반영해야 한다.

다음과 같이 사용될 수 있다. yun이라는 계정에게 testDB에 대한 권한을 조정한다.

#yun에게 testDB의 모든 테이블에 대한 모든 권한 부여
GRANT ALL PRIVILEGES ON testDB.* TO 'yun'@'localhost';

#yun에게 testDB의 모든 테이블에 대한 select, insert, update 권한 부여
GRANT SELECT, INSERT, UPDATE ON testDB.* TO 'yun'@'localhost';

#yun에게 부여된 testDB에 관한 모든 권한 삭제
REVOKE ALL ON testDB.* TO 'yun'@'localhost';

부여된 권한은 다음과 같이 확인한다.

SHOW GRANTS FOR '사용자ID'@'HOST';

카테고리:

업데이트:

댓글남기기