본문 바로가기

Mysql

mysql 5.x grant 를 이용하여 사용자 추가하기

grant all on 디비.* to 계정@localhost identified by '패스워드';


1) 데이터베이스 생성, 사용자 생성, 권한 부여하기

시나리오 1)  fracktal이란 유저를 생성하고 test 데이터 베이스의 모든 테이블에 권한을 부여할 때..

1. 관리자 계정으로 접속
mysql -u root -p
Enter password: (패스워드 입력)


2. test 데이터 베이스를 생성한다.

create database test;


3. 사용자를 추가하고 test 데이터베이스에 속한 테이블에 맞는 권한을 부여한다.
(여기서는 일단 모든 권한이 없는 fracktal 사용자를 생성한 후, select, insert, update,delete, alter, create, drop권한을 부여하였다.)
(단지 테이블을 제거, 추가 할 필요가 없는 계정이라면 select, insert, delete, update 만으로도 될 것이다.)

grant usage on test.* to fracktal@localhost identified by '패스워드';
grant
select, insert, update, delete, index, alter, create, drop on test.* to fracktal@localhost;


사용자를 새로 생성할 때,  이렇게 한번에 써 넣어도, 다른 권한들이 없도록 설정되었다.

grant select, insert, update, delete, index, alter, create, drop, lock tables on test.* to fracktal@localhost identified by '패스워드';


형식: grant (권한) on (데이터베이스).(테이블) to (ID) [by (패스워드)] [with grant option]

- [[with grant option]]을 사용하면 그 사용자는 다른 사용자에게 권한을 부여할 수 있게 된다.
- 모든 권한을 주고 싶으면 all을 사용하고, 모든 권한을 사용하고 싶지 않으면 usage를 사용한다.
- 주의: 형식에서 생략된 부분도 있다. (일반적인 유저가 잘 사용하지 않는 것들)
- 권한을 제거할 때는 revoke를 사용한다.
- 모든 권한을 줄 경우 : grant all privileges on test.* to fracktal@localhost;


4. 관리자 계정에서 나간다.

quit

-----------------------------------------------------------------------------------------------
(2) 사용자의 권한 보기

show grants for fracktal@localhost

-----------------------------------------------------------------------------------------------
(4) 사용자의 제거하기

use mysql
delete from user where User='fracktal'
quit
$ mysqladmin -u root -p reload

-----------------------------------------------------------------------------------------------
(4) 패스워드 변경하기.

1. 자신의  패스워드 변경하기

set password = PASSWORD('newpassword');

1.5  관리자가 다른 사용자 패스워드를 바꿀 경우.

set password for userid=PASSWORD('newpassword');

-----------------------------------------------------------------------------------------------
(5) Etc..

1. 데이터베이스 리스트 보기

show databases;


2. 테이블 리스트 보기

show tables;


3. 테이블 항목 보기

describe test;


4. sql파일 적용하기 ( 백업시 저장된 sql로 복구시에도 사용가능)

mysql -h (호스트) -u (ID) -D (데이터베이스) -p < test.sql;


5. sql파일로 백업하기

mysql -h (호스트) -u (ID) -p (테이블명 혹은 DB명) > test.sql;


- 테이블 구조만 백업할 경우 : mysql -h (호스트) -u (ID) -p -D (DB명) > test.sql;


-------------------------------------------------------------------------------------------------
(4) Link

Reference:
http://dev.mysql.com/doc/refman/5.1/en/index.html