반응형
두가지 방법이 있습니다. 하나는 윗분 말씀대로 mysql 데이터베이스의 user,host,db 등의 테이블에 직접 입력/수정/삭제 하는 방법이고 또하나는 grant / revoke 문을 사용해서 사용자계정을 관리 하는것입니다.

일단 MySQL의 권한시스템에 대해서 아셔야 합니다.

어떤식으로 접속/접근 이 허락되는지 시스템 데이터베이스인 mysql 데이터베이스의 시스템 테이블인 user,host,db 등의 테이블의 역활이 무엇인지 알아야 합니다.

예를 들면 user테이블은 해당 사용자의 아이디,패스워드,각종 권한에 대해서 host는 사용자의 접근 ip를 보다 세세하게 제어할수 있고, db,table 은 각 데이터베이스나 테이블에 접근할수 있는 권한을 세세하게 제어할수 있습니다.

자세한것은 메뉴얼이나 관련문서등을 참고하세요.

http://powerdb.net/database/mysql/doc/MySQL-KLDP

오래된 문서지만, 접근권한시스템 부분을 읽어보세요 많은 도움이 될것입니다.

직접 테이블을 수정하는것보다는 grant/revoke 문을 사용하시는것을 권해드립니다. 사용법도 그다지 어렵지 않고 직접 테이블을 수정하는것보다 편할것입니다.

사용법은 메뉴얼을 참고 하세요.

다음 사이트에 MySQL 섹션을 참고하세요.

http://www.powerdb.net

>mysql -uroot -p
passwd: *******

use mysql [엔터]

desc db; [엔터]  YYYY...... 가 몆개인가?

디비 추가..
>insert into db values ('%','디비명','아이디','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); [엔터]
Query OK,....

사용자 추가..
>insert into user (host,user,password) values ('localhost','아이디',password('비밀번호')); [엔터]

사용자 삭제
>delete from user where user='아이디'; [엔터]

데이타베이스 생성
>../mysql/data  에 아이디와 같은 이름의 폴더(디렉토리) 만들어준다.


끝으로 mysql 스톱/시작 해준다.

- 생성

mysql> create database test2;
mysql> grant all privileges on test2.* to smson@localhost
identified by 'smson' with grant option;
mysql> grant reload,process on *.* to admin@localhost;

- 삭제

mysql> DELETE FROM mysql.user
-> WHERE User='username' and Host='hostname';
mysql> FLUSH PRIVILEGES;

- 확인

mysql> select * from user;
mysql> select * from db;

기본적인 FAQ입니다.

--------등록--------------------------------------------------------------------
[root@prnee.com /root]# mysql -p mysql (root비번설정하지 않았을땐 -p제외)
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is xxxx to server version: 3.23.32-log

Type 'help' for help.

//사용자를 등록. 접속권한만! 나머지는 N으로 합니다.
mysql> insert into user values ('localhost','user',password('passwd'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N');

Query OK, 1 row affected (0.00 sec)

// DB 권한을 줍니다.
mysql> insert into db values('localhost','DBname','user','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

Query OK, 1 row affected (0.00 sec)

mysql> \q
Bye

// DB생성
[root@prnee.com /root]# /usr/local/mysql/bin/mysqladmin -p create DBname
Database "DBname" created.

// 서버재시작
[root@prnee.com /root]# /usr/local/mysql/bin/mysqladmin reload 또는
[root@prnee.com /root]# mysql.server stop
[root@prnee.com /root]# mysql.server start
--------------------------------------------------------------------------------
---------삭제-------------------------------------------------------------------
mysqladmin -p drop DBname

[root@prnee.com /bin] ./mysql -p mysql
password : xxxxx
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is xxxx to server version: 3.23.32-log

Type 'help' for help.

mysql> delete from user where user='user';
mysql> delete from db where user='user';
mysql> \q
위와같이 한후에 서버 재시작..

GRANT ALL ON <DATABASE 명 혹은 테이블명> TO <사용자명>@<호스트명> IDENTIFIED BY '비밀번호';

사용자 권한 삭제는 REVOKE문을 사용하시면 됩니다.

REVOKE <권한> ON <DATABASE 명 혹은 테이블명> FROM <사용자명>;

사용자 삭제는

DELETE FROM USER WHERE User='사용자명' AND Host='호스트명';

마지막으로

권한 업데이트나 삭제 후에는

FLUSH PRIVILEGES;

이렇게 ^^ 간단하게..

그리고.. 추가적으로 디비에 권한 주는 부분은

insert into db values('%','디비이름','UserName','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

이렇게..

이 게시판 아래에도 내용이 있기는 한데 다시 정리해 봤습니다.

mysql을 사용 하려면 mysql 사용자 계정을 등록하고 DB 를 만들어 줘야 합니다. 호스팅을 받으면 계정과,암호,DB명을 호스팅 업체에서 주겠지만 직접 서버를 돌리는 경우에 아래와 같이 하면 됩니다.
( #은 리눅스 쉘 프롬프트이고, // 이후부분은 설명 입니다, mysql>은 마이스퀄 프롬프트입니다. )

1. mysql 설치 확인      : #rpm -qa | grep mysql
2. mysql 설치 위치 확인 : #find / -name mysql
3. mysql 시작           : #/etc/rc.d/init.d/mysqld start

4. rpm으로 설치 했을때 mysql 의 위치
/usr/bin          ; mysql 실행 모듈,명령어  
/usr/lib          ; mysql rpm 설치 디렉토리
/usr/lib/mysql    ; 데이타베이스 생성되는 디렉토리 ( DB create 할때 디렉토리로 추가됨)
/etc/my.cnf       ; mysql 설정 파일
( ** rpm으로 php 와 mysql 을 설치한 경우와 소스를 컴파일한 경우 있는 위치가 틀립니다. **)

5. 제일 먼저 해야 할일이 mysql root 의 패스워드 설정 입니다.초기에는 root 사용자에 패스워드가 설정되어 있지 않으므로(null 값) Enter password: 에 그냥 엔터를 입력하면 됩니다.

#cd /usr/bin      // mysql 명령어가 있는 디렉토리로 이동 합니다.
#mysql -u root -p mysql // mysql 접속
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.49

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>               //mysql 프롬프트 입니다.

1) root 사용자의 패스워드를 myroot로 설정 해 보겠습니다.
(** mysql 명령어는 모두 끝에 ; (세미콜론)을 붙여 주어야 합니다. **)

mysql> update user set password=password('myroot') where user='root';
Querk OK, 2 rows affected (0.00 sec)
Rows matched : 2 Changed : 2 Warnings : 0

mysql>quit         // mysql 을 끝내는 명령어 입니다. 쉘프롬프트로 돌아 가겠죠.
(** 위 방법말고 #mysqladmin -u root -p password 'myroot' 해도 됩니다. )

변경된 root 사용자의 패스워드가 적용되기 위해서는 데이터베이스를 다시 불러와야 합니다.
# mysqladmin -u root reload

변경된 root 사용자 패스워드로 다시 mysql에 접속해 보겠습니다. Enter password: 에 변경된 패스워드인 myroot 를 입력합니다.

$ mysql -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.49

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
2) 새로운 데이터베이스 생성하기
새로운 데이터베이스를 생성하기 위해 셸 프롬프트 상에서 다음과 같이 입력합니다.생성할 데이터베이스 이름은 zboard 입니다.

mysql>create database zboard;  // zboard 를 만듭니다.
Query OK, 0 rows affected (0.00 sec)

3) zboard 에 계정 사용자(ID:zman)를 주고 암호(Password:zpass)까지 설정해서 한방에 끝내겠습니다.
( ** insert문을 이용하는 것보다 grant 를쓰는것이 편합니다. **)

mysql>GRANT ALL PRIVILEGES ON zboard.* TO zman@localhost IDENTIFIED BY 'zpass' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

4) 계정 등록을 확인해 보겠습니다.
mysql>use mysql;          // 참고로 mysql 은 사용자가 등록되는 DB 입니다.root 도 여기등록 됩니다.
mysql>select * from user; // 위에서 만든 zman 이 사용자에 보여야 합니다.

5) 끝내겠습니다.
mysql>quit

(** myroot,zboard,zman,zpass 는 제가 임의로 한 것이고 다른걸로 바꿔야 하는건 다 아시겠죠 ? )

이제 여기에 등록한 ID,DB,password를 제로보드 설치할때  주면 됩니다.

6) 데이터 베이스 삭제
mysql>drop database zboard;

7) 사용자 삭제
mysql>mysql> DELETE FROM user where user='zman';

반응형

'DB > My SQL' 카테고리의 다른 글

MySQL DB 데이타 백업복구 하는 방법  (0) 2008.03.18
mysql 간단 명령어  (0) 2007.08.14
mysql TIP  (0) 2007.06.16
Posted by Real_G