1. 새로운 데이터베이스를 생성하자.
이것은 mysql의 root 로서 작업한다.
mysql> create database user1;
Query OK, 1 row affected (0.01 sec)
이러면 'user1'이라는 새로운 데이터베이스가 생성된다.
결과를 보려면 다음과 같이 한다.
mysql> show databases;
+-----------+
| Database |
+-----------+
| mysql |
| test |
| user1 |
+-----------+
5 rows in set (0.00 sec)
2. 사용자 등록 및 권한주기.
위의 과정은 단지 데이터베이스를 생성하기만 했을뿐이다.
그러므로, 사용자 및 권한 그리고 mysql관리 테이블과의 연결이 필요하다.
이렇한 것을 관리하기 위하 db가 'mysql' 이라는 디비이다.
mysql 상의 db, user 테이블에 방금 생성된 user1 Database 에대한
정보를 입력하자.
db는 데이터베이스들의 정보를 가지고 있는 테이블,
user는 사용자들에 대한 정보를 가지고 있는 테이블이다.
mysql> insert into db
-> (host,db,user,select_priv,insert_priv,update_priv
-> ,delete_priv,create_priv,drop_priv,grant_priv,
-> references_priv,index_priv,alter_priv)
-> values ('%','user1','user1_name',
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
-> ;
Query OK, 1 row affected (0.01 sec)
mysql> desc db;
라는 명령어를 사용하게 되면, db테이블의 구조가 있으니 그것을
참조해야 한다.
insert 시에 철자가 틀려서도 안되며, 필드숫자에 맞도록 값을 정확히
기재해야 한다.
이제 user1_name 이라는 사용자는 user1 데이타베이스에 대하여
select, insert, update, delete, create, drop, grant, references, index, alter
권한이 모두 주어졌다.
여기서 db라는 테이블을 이용해서 사용자의 권한을 제한할수 있다.
위에서 'Y'로 되어 있는 것을 'N'로 바꾸면 그 권한이 삭제 되는 것이다.
예를 들어 delete에 해당하는 값을 'N'로 하였다면, user1_name 이라는
사용자는 user1 이라는 데이터베이스에 있는 테이블을 삭제할수 없게된다.
자 이제 user1 이라는 사용자에 대한 등록을 할 차례이다.
mysql> insert into user
-> (host,user,password)
-> values ('localhost','user1_name',password('user1_password'))
-> ;
Query OK, 1 row affected (0.00 sec)
여기서 패스워드 부분을 좀 살펴 보자.
테이블에 패스워드를 입력할때
password('user1_password')
위와 같이 했다. password()는 mysql 내장 함수로 매개 변수를 암호화한다
이렇게 하지 않는다면 mysql은 에러는 내게 된다.
참고.
여기서 생략한 항목(필드)와 값은 기본값인 'N'로 입력된다.
생략한 항목은 사용자의 권한을 설정하는 부분인데..
여기 user 라는 테이블에서 사용 권한을 주게되면..
그 사용자는 mysql의 모든 데이터베이스에 대해서 권한을 가지게 된다.
다시 말해서 자신의 데이터 베이스가 아닌 다른 데이터베이스에서도
조작할수 있게된다는 것을 뜻합니다.
그래서 사용자를 등록 할때는 아무런 권한을 주지 않고,
데이터베이스를 등록할때 사용자를 지정하고 권한을 부여하는 것이다.
*******************************************************************
중요한 tip......
*******************************************************************
user 테이블에 사용자를 insert, update 한 경우 MySQL을 꼭 재기동시켜 주어야만
한다. 명령은 다음과 같다.
myaqladmin -u root -p reload
이 명령은 user 테이블에서 사용자 정보를 다시 읽어서 MySQL 을 다시 실행시켜준다.
---- 박순행(soonhg)님의 강의록중에서
*******************************************************************
최종정리.
데이터베이스 생성과 유저등록.
순서는 상관 없지만 일반적으로 다음과 같이 한다.(위예제와는 조그다르다)
1. 데이터베이스를 생성한다.
mysql>create database database_name;
2. 유저를 등록한다. 이때 아무런 권한을 주지 않는다.
mysql>insert into user; (자세한 것은 위를 참조 )
3. 데이터베이스를 등록한다.
여기서 데이터베이스를 사용할수 있는 권한을 유저에게 부여한다.
mysql>insert into db; (역시 자세한 것은 위를 참조.)
4. mysql을 재시작 한다.
[이 게시물은 최고관리자님에 의해 2007-08-07 16:26:20 홈페이지에서 이동 됨]

관리자
04-08-04 16:15
0개
454회
MySQL
mysql에서 user, db 추가 하기
추천
0
비추천
0
댓글목록
등록된 댓글이 없습니다.