1. 먼저 mysql 서버에 root 권한으로 접속하기
 
  ]$ mysql -u roo -p
  password ****
  루트 패스 치시고 mysql 접속
 
  * 권한 부여 할때에는 grant 명령어나 insert 문으로 직접 추가하시는 방법이 있습니다.
  Grant 문을 이용하면 flush privileges 를 할 필요가 없습니다.
 
  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> use mysql;

 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> create database test2;
mysql> grant all privileges on test2.* to smson@localhost
identified by 'smson' with grant option;
mysql> FLUSH PRIVILEGES;

test2 는 database 명이고 smson : id, 'smson' : 비밀번호입니다. 님의 경우는 아래와 같이하면 사용자 계정을 생성할수 있습니다.

mysql> grant all privileges on testsql.* to tester@'%'
identified by 'tester에 해당하는 비밀번호' with grant option;

반응형

+ Recent posts