DBMS/MySQL

[MySQL] 사용자(Account) 추가/삭제, 권한 부여

쌍쌍바나나 2016. 3. 23. 13:28
반응형

MySQL에서 사용자를 추가/제거 하는 방법과 권한을 부여하는 방법입니다. 

접속하기

$ mysql -u root -p

사용자 확인하기

mysql database를 선택하고, host, user, password를 확인합니다. 

mysql >use mysql; 

mysql > select host, user, password from user; 

 여기서 host는 localhost, '%'가 있습니다.  사용자 아이디 뒤에 @localhost, '%'에 따라서 외부 접근이 허용되는 권한을 줄 수 있습니다. localhost는 내부접근, '%'는 외부 접근입니다. 

사용자 추가 (권한 추가)

사용자 아이디를 만드는 방법, 비밀번호 추가, 외부접근 허용
userid에 추가하고자 하는 아이디를 입력하면 됩니다. 
identified by 'psasword'; password에 비밀번호를 함께 입력하면 패스워드를 설정할 수 있습니다. 

 mysql > create user userid 

mysql > create user userid@localhost identified by 'password';

mysql > create user 'userid'@'%' identified by 'password;

예) create user 'hiru'@'%' identified by 'hirururu'; 
(hiru라는 외부접근이 가능한 유저를 생성하고, 비밀번호는 hirururu로 설정하겠다.)

다른 방법은 

mysql > insert into user (host, user, password) values ('localhost', 'hiru', 'password('hirururu')); 

사용자 제거

mysql > drop user 'hiru';

mysql > delete from user where user ='hiru';


사용자에게 데이터베이스 사용권한을 부여하는 방법

MySQL 서버에 접속해서 모든 사용자가 Delete, Insert, Update의 권한이 있다면, 생각만해도 끔찍하지요. 
권한을 추가하고 삭제하기 위해서, GRANT와 REVOKE의 명령을 사용한다. 
SELECT, DELETE, UPDATE, INSERT의 모든 권한을 주기 위해서는 

 mysql > grant all privileges on dbname.table to userid@host identified by 'password';

mysql > grant select, insert, update on dbname.table to userid@host identified by 'password';

mysql > grant select, insert, update on dbname.table to userid@'192.168.%' identified by 'password';

(host가 192.168.X.X로 시작되는 모든 IP의 원격 접속을 허용한다는 의미입니다)
(dbname.table 대신 dbname.* 은 해당 database의 모든 table의 접근을 허용한다. *.*은 모든 접근을 가능하게 한다.) 

변경된 권한을 적용하기

mysql > flush privileges; 

권한을 삭제하는 방법

mysql > revoke all on dbname.table from username@host

권한을 확인하는 방법

mysql > show grants for userid@host

mysql > show grants for 'hiru'@'%';


반응형