[MySQL] 계정 및 DB생성/권한관리
사용자 계정 추가, 삭제, 조회
MySQL의 기본 관리자 계정은 root 이며, 패스워드는 설치시에 설정한다.
mysql -uroot -p
명령문 후 패스워드를 입력하여 루트계정으로 접속한다.
사용자 계정을 생성 및 삭제하는 구문은 다음과 같다.
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';
댓글남기기