[DBMS_MySQL] MySQL 설치 및 사용자 추가,권한

MySQL 설치 및 사용자 추가,권한


1. MySQL 설치


다음과 같이 명령하면 MySQL이 설치됩니다.

yum install mysql-server


MySQL 서버를 실행시키는 명령어는 다음과 같습니다.

service mysqld start


root 사용자 비밀번호 생성

mysql -u root -p mysql

비밀번호를 입력하라고 나오는데 아직 비밀번호가 없으므로 엔터를 칩니다.


root의 비밀번호를 생성하는 명령은 다음과 같습니다. (new-password에 원하는 비밀번호를 넣으세요.)

mysql > update user set password=password('new-password') where user='root';


이제 권한 테이블을 업데이트합니다.

mysql > flush privileges;


다음과 같이 명령하여 MySQL에서 나옵니다.

mysql > quit;        



2. 사용자 추가 (권한추가)

mysql > create user 사용자ID; // 사용자 추가

mysql > create user userid@localhost identified by '비밀번호'; // 사용자(user)를 추가하면서 패스워드까지 설정


기존에 사용하던 계정에 외부 접근 권한을 부여하려면, Host를 '%' 로 하여 똑같은 계정을 추가한다

mysql > create user userid@'%' identified by '비밀번호';  // '%' 의 의미는 외부에서의 접근을 허용

mysql > FLUSH privileges; // 변경된 내용을 메모리에 반영(권한 적용)


cf.) 다른 방법으로는

mysql > USE mysql;  // mysql database 선택

mysql > INSERT INTO user (Host, User, Password) VALUES ('localhost', '계정아이디', password('비밀번호'));

mysql > INSERT INTO user (Host, User, Password) VALUES ('%', '계정아이디', password('비밀번호'));

mysql > FLUSH privileges; 


cf.) 사용자 삭제

mysql > drop user userid@'%'; // 사용자 삭제

mysql > drop user userid@localhost;

mysql > select * from user;    // 등록된 모든 사용자 ID 조회

mysql > delete from user where user = '사용자ID';    // 사용자 삭제


3. 사용자 권한 부여

계정이 생성되었다면, 그 계정이 접근할 수 있는 데이터베이스를 생성하고 권한을 부여해야 한다

MySQL은 사용자 이름, 비밀번호, 접속 호스트로 여러분을 인증한다. MySQL은 로그인을 시도하는 위치가 어디인가 하는 것도 인증의 일부로 간주한다.

MySQL 에서 사용자 계정을 추가하고 권한을 추가하거나 제거하는 데 GRANT 와 REVOKE 명령을 사용하기를 권장한다. 사용자에게 허가된 것을 확인하려면 SHOW GRANTS 를 사용한다.

mysql > GRANT ALL PRIVILEGES ON DB명.테이블 TO 계정아이디@호스트 IDENTIFIED BY '비밀번호'; 

// 계정이 이미 존재 하는데 'identified by '비밀번호' 부분을 추가하면 비밀번호가 변경된다


(1) localhost 접속 권한 추가 

mysql > GRANT ALL privileges ON database명.* TO 사용자ID@localhost IDENTIFIED BY '비밀번호';

mysql > GRANT ALL privileges ON database명.* TO 사용자ID@127.0.0.1 IDENTIFIED BY '비밀번호';


(2) localhost 의 경우 host명으로 접속하게 되는 경우

mysql > GRANT ALL privileges ON database명.* TO 사용자ID@'audi' IDENTIFIED BY '비밀번호';


(3) 모든 원격지 에서의 접속 권한 추가 

mysql > GRANT ALL privileges ON database명.* TO 사용자ID@'%' IDENTIFIED BY '비밀번호';


(4) 특정 테이블에서만 접속 권한 추가 

mysql > GRANT ALL privileges ON test.* TO 사용자ID@localhost identified by '비밀번호';


(5) 모든 테이블에 모든 원격지에서 접속 권한 추가

mysql > GRANT ALL privileges ON *.* TO 사용자ID@'%' identified by '비밀번호' ;  


(6) 변경사항 적용

mysql > flush privileges;


cf.)

mysql> grant select, insert, update on test.* to user@localhost identified by '비밀번호';

// user 에게 test 데이터베이스 모든 테이블에 select, insert, update 권한 부여--> ALL은 모든 권한 부여


cf.) 사용자에게 데이터베이스 사용권한 제거

revoke all on DB명.테이블명 from 사용자ID;   // 모든 권한을 삭제




'Server > DBMS' 카테고리의 다른 글

[DBMS_Oracle] 뷰 2  (0) 2014.12.15
[DBMS_Oracle] 뷰 1  (0) 2014.12.15
[DBMS_Oracle] 인덱스  (0) 2014.12.10
[DBMS_Oracle] 시퀀스  (0) 2014.12.08
[DBMS_Oracle] dual  (0) 2014.12.08