MySQL의 계층구조
위의 그림에서 알 수 있다시피 3계층 구조로 데이터베이스가 존재하지 않습니다. 실제로도 데이터베이스와 스키마를 동의어로 취급합니다.
●데이터베이스 생성
CREATE DATABASE 데이터베이스명;
●데이터베이스 삭제
DROP DATABASE 데이터베이스명;
●데이터베이스 조회
SHOW DATABASES;
●유저 생성
CREATE USER 유저명;
create user 사용자ID; // 사용자 추가
create user userid@localhost identified by '비밀번호';
// 사용자(user)를 추가하면서 패스워드까지 설정
기존에 사용하던 계정에 외부 접근 권한을 부여하려면, Host를 '%' 로 하여 똑같은 계정을 추가한다
create user 'userid'@'%' identified by '비밀번호'; // '%' 의 의미는 외부에서의 접근을 허용
다른방법으로는 CREATE USER 유저명; 이후에
USE mysql; // mysql database 선택
INSERT INTO user (Host, User, Password) VALUES ('localhost', '계정아이디', password('비밀번호'));
INSERT INTO user (Host, User, Password) VALUES ('%', '계정아이디', password('비밀번호'));
FLUSH privileges;
●유저 삭제
DROP USER 유저명;
drop user 유저명@'%';
drop user 유저명@localhost;
●유저 조회
use mysql; 이후에
select * from user;
●계정에 권한 부여
GRANT ALL PRIVILEGES ON DB명.테이블 TO 계정아이디@host IDENTIFIED BY '비밀번호';
// 계정이 이미 존재 하는데 'identified by '비밀번호' 부분을 추가하면 비밀번호가 변경된다
GRANT ALL privileges ON DB명.* TO 계정아이디@locahost IDENTIFIED BY '비밀번호';
GRANT ALL privileges ON DB명.* TO 계정아이디@'%' IDENTIFIED BY '비밀번호';
grant all privileges on DB명.* to userid@'%' identified by '비밀번호' ; //모든 원격지에서 접속 권한 추가
host에 '200.100.%' 로 하면 IP주소가 200.100.X.X 로 시작되는 모든 IP에서 원격 접속을 허용한다는 의미
host에 '200.100.100.50' 으로 하면 IP주소가 200.100.100.50 인 곳에서만 원격 접속을 허용한다는 의미
grant all privileges on test.* to userid@localhost identified by '비밀번호';
// user 에게 test 데이터베이스 모든 테이블에 대한 권한 부여
grant select, insert, update on test.* to user@localhost identified by '비밀번호';
// user 에게 test 데이터베이스 모든 테이블에 select, insert, update 권한 부여
grant select, insert, update on test.* to user@localhost; -- 패스워드는 변경없이 권한만 부여하는 경우
// user 에게 test 데이터베이스 모든 테이블에 select, insert, update 권한 부여
grant all privileges on *.* to user@localhost identified by '비밀번호' with grant option;
// user 에게 모든 데이터베이스 모든 테이블에 권한 부여
// 전역 권한은 모두 광범위한 보안문제가 수반되므로 권한을 허용하는 경우 신중해야 함
flush privileges; // 변경된 내용을 메모리에 반영(권한 적용)
●계정의 권한 조회
SHOW GRANTS FOR test@localhost; -- userid 와 host명까지 붙여서 검색해야 함
SHOW GRANTS FOR test@'%';
SHOW GRANTS FOR test@'200.100.100.50';
●계정에 권한 취소
revoke all on DB명.테이블명 from 사용자ID; // 모든 권한을 삭제
'DataBase' 카테고리의 다른 글
오라클 데이터베이스 구조 (0) | 2020.10.28 |
---|---|
[DataBase] ORACLE 테이블생성 (0) | 2020.10.28 |
데이터 파이프라인(Data Pipeline) (0) | 2020.09.14 |
대규모 웹 서비스(대용량 DB) (0) | 2020.09.14 |
정규형(normal form), 정규화(normalization)와 반(역)정규화(Denormalization) (0) | 2020.08.23 |
댓글