mysql에서 사용자 계정 추가하기
1. 먼저 mysql 서버에 root 권한으로 접속하기
]$ mysql -u root -p
password ****
루트 패스 치시고 mysql 접속
* 권한 부여 할때에는 grant 명령어나 insert 문으로 직접 추가하시는 방법이 있습니다.
Grant 문을 이용하면 flush privileges 를 할 필요가 없습니다.
(*) 사용자 계정 test 생성 - localhost
create user test@localhost identified by '패스워드';
2. test라는 사용자에게 MySQL 의 모든 DB 의 모든 테이블에 모든권한을 부여하기 - root 권한 주기
mysql> grant all privileges on *.* to test@localhost identified by '패스워드' with grant option;
-> localhost 의 test 에게 (test@localhost) 패스워드라는 암호로 MySQL 의 모든 권한을 부여 하고 있슴당
만약, insert 문을 쓴다면,
mysql> insert into user values ('localhost','test',password('패스워드'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> flush privileges;
3. test 라는 사용자에게 testDB 라는 DB에 모든 테이블에 모든 권한을 부여하기
mysql> grant all privileges on testDB.* to test@localhost identified by '패스워드';
4. 3번의 경우에서 select, insert 권한만 준다고 할땐
mysql> grant select, insert on testDB.* to test@localhost identified by '패스워드';
5. 4번의 경우에서 testTB 라는 테이블의 name,age,email 칼럼에만 update 권한을 부여하고 싶을때
mysql> grant update(name,age,email) on testDB.testTB to test@localhost identified by '패스워드';
6. localhost 외의 여러 일반 호스트에서 로그인하는 사용자일 경우에는 호스트 부분을 %로 처리합니다.
외부 호스트에서 로그인할 수 있고 select 권한만 갖는 사용자를 추가할 땐
mysql> grant select on testDB.* to test@'%' identified by '패스워드';
7. ip 주소가 192.168.0 으로 시작하는 컴퓨터에서 로그인하는 사용자를 추가할때
mysql> grant all privileges on *.* to test@'192.168.0.%' identified by '패스워드';
7번의 경우 특정 ip 내에 사용자에 대해 권한을 부여함으로써 LAN 상에서 보안상 이득이 있습니다.
mysql> FLUSH PRIVILEGES;