사용자 추가는 2가지 방법이 있습니다.
사용자를 추가하기 위해서는 'root' 계정으로 로그인 하여야 하구요. 아래 2가지 방법으로 사용자를 추가 할 수 있습니다.
1) GRANT 명령을 통한 추가 (한방에 추가(명령 한번으로 사용자를 추가))
GRANT ALL PRIVILEGES ON
접근 허용 할 DB 이름.* TO
'new_user_id'@'%' IDENTIFIED BY '
new_user_password' WITH GRANT OPTION;
모든 테이블에 접근 하기위해서는 접근 허용 할 DB 이름.* ==> *.*
2) 직접 사용자 테이블에 등록. (두방에...(두 단계에 걸쳐 사용자를 추가))
이 방법은 '사용자 ID'가 저장되어 있는 테이블에 직접 추가해 주는 방법 입니다.
MySql은 사용자 정보를 'MySQL.User' 테이블에서 관리되고 있습니다. 따라서 추가시에도 'MySql.User 테이블에 신규 계정을 등록 하면 됩니다.
로그인 후 'MySql' 테이블로 이동 하세요.
use mysql;
insert into user (host, user, password) values ('%', 'test', password('1234'));
mysql의 경우 사용자 패스워드를 'MD5'형태의 암호화 처리하여 관리하기 때문에 직접 테이블에 저장 시에는 'password()' 함수를 통해 패스워드를 MD5로 암호화 시켜 저장하여야 합니다.
select host, user, password from user;
신규 추가된 ID를 확인 할 수 있습니다.
사용자 계정 추가 후 'DB' 테이블에 사용할 데이터베이스 접근 권한을 추가 하여야 합니다.
GRANT ALL ON testdb.* to test_user@'%' >> 와 같이 'Grant' 명령을 통해 해당 DBase 에 뭐든 권한을 줄 수도 있고 또는 아래와 같이 접근 권한 Dbase 에 직접 등록을 통해 각각의 기능을 제한 할 수 있다.
'DB' 테이블의 'host, User' 컬럼은 사용자 추가 시에 등록한 사용자 정보를 동일하게 입력 하고 'Db' 컬럼에는 접근 가능한 데이터베이스 이름을 기록합니다. 나머지 컬럼은 권한 설정 컬럼으로 'Y/N' 입력 함으로써 설정이 가능 합니다.
사용자 삭제 시에는 테이블에서 삭제를 하면 됩니다.
delete from user where user = 'test';
delete from db where user = 'test';
변경 후에는 꼭 아래 명령을 통해 적용 시키거나 서비스를 다시 시작 하여야 합니다.