12. MYSQL신규사용자 설정 쉘스크립트(dbusersetup)
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,661 조회
- 0 추천
-
목록
본문
12. MYSQL신규사용자 설정 쉘스크립트(dbusersetup)
MYSQL 데이터베이스를 관리하는 업무에서 큰 비중을 차지하는 것이 새로운 사용자가 들어왔을 때 DB셋팅 부분일 것입니다. 그리고 필자 또한 새로운 DB사용자를 위해서 처음에는 반복되는 작업을 해야만 했습니다. 간단하지만 이 스크립트를 만든 목적이 여기에 있습니다. 반복적인 작업량을 단순화하여 작업량과 시간을 줄이기 위한 것입니다.
우선, 새로운 MYSQL사용자가 신청되었을 경우에 MYSQL 데이터베이스를 사용하도록 설정하기 위하여 MYSQL 데이터베이스에 설정되어야하는 항목은 다음과 같습니다.
사용자에 대한 DB설정을 생성하는 스크립트입니다. MYSQL에서 특정사용자의 설정을 생성할 경우에는 다음과 같은 정보들이 생성되어야 합니다.
- 새로운 사용자가 사용할 데이터베이스(DB) 생성
- db테이블의 새로운 사용자의 DB설정항목 생성
- user테이블의 새로운 사용자의 계정 생성
이 스크립트를 이용하여 위의 항목들을 자동생성하게 됩니다. 그리고 이 스크립트의 파일명은 “dbusersetup”이며 사용법은 다음과 같습니다.
사용법 : dbusersetup DB명 DB사용자명 사용자패스워드
실제 사용예를 보여드리면 다음과 같습니다. 생성할 DB내용은 다음과 같습니다.
- 생성할 DB명 : sskimdb
- 생성할 DB사용자 : sskim
- 생성할 DB사용자 패스워드 : 12345
이상과 같은 조건이지만 대부분 DB명과 DB사용자명은 동일한 경우가 많습니다. 따라서 동일 할 수도 있고
동일하지 않을 수도 있기 때문에 이 둘은 구분을 해둔 것입니다.
실제 사용예를 보십시요.
“dbusersetup sskimdb
sskim 12345”라고 입력하시면 관리자 패스워드를 입력해주기만
하면 DB셋팅이 끝납니다.
그리고 다음은 실제로 생성된 DB내용을 확인한 것입니다. 확인을 위해서 mysql 관리자
계정으로 접속합니다.
접속한 다음 다음과 같이 sskimdb라는 데이터베이스가 생성이 되었는가를 “show databases”라는 명령문으로 확인한 것입니다.
그리고 db테이블에 sskiimdb와 sskim이라는 DB와 사용자가 입력이 되었는가를 확인한 것입니다.
mysql> select * from db where user='sskim'; +-----------+----------+--+------------+-----------------------+------------------+ | Host | Db | User | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Create_tmp_table_priv | Lock_tables_priv | +-----------+----------+---+------------+-----------------------+------------------+ | localhost | sskimdb | sskim | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | +-----------+----------+----------+-------------+------------+---------------------+ 1 row in set (0.01 sec)
mysql> |
다음으로 user테이블에서 sskim의 Mysql 접속계정과 패스워드가 설정이 되었는가를 확인한 것입니다.
mysql> select * from user where user='sskim'; +-----------+----------+------------------+-------+-------------+-----------------+ | Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | +-------------------+--------------+---------------+-------------+-----------------+ | localhost | sskim | 5fcc735428e45938 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | | | | | 0 | 0 | 0 | +-------------------+--------------+---------------+-------------+-----------------+ 1 row in set (0.00 sec) mysql> |
모두 정상적으로 설정이 되었음을 확인하실 수 있을 것입니다.
마지막으로 이 설정을 유효하게 하시려면 MYSQL을 reload 해 주셔야합니다. Reload하는 방법은 “mysqladmin –u root –p reload”라고 하시면 됩니다. Reload에 관련된 설명은 앞에서 충분히 하였으므로 여기서는 생략합니다.
이상으로 MYSQL 신규사용자 셋팅하는 스크립트에 대한 설명과 실제 사용법에 대해서 알아보았습니다. 다음은 이 스크립트의 소스입니다.
#!/bin/bash
#### 프로그램 명 : DB사용자설정기 V1.0(dbusersetup)#### #### 저작권 : 이 프로그램의 저작권은 수퍼유저코리아에 있습니다. #### 이 프로그램의 사용은 허용되나 재배포는 금지합니다. #### 제작자 : 박성수 (헐렁고수) : papa@superuser.co.kr #### 메인사이트 : www.superuser.co.kr #### 주배포사이트 : ftp.superuser.co.kr
#### 사용법 : dbusersetup DB명 DB사용자명 사용자패스워드
#### $1 : DB명 #### $2 : DB사용자명 #### $3 : 사용자패스워드
touch /tmp/mysql_dbusersetup_temp echo "create database $1;" >> /tmp/mysql_dbusersetup_temp echo "insert into db values('localhost','$1','$2', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');" >> /tmp/mysql_dbusersetup_temp
echo "insert into user values('localhost','$2',password('$3'),
'N','N','N','N','N','N','N','N','N','N','N',
echo " MYSQL 관리자 패스워드입력" /usr/local/mysql/bin/mysql -u root -p mysql < /tmp/mysql_dbusersetup_temp
rm -f /tmp/mysql_dbusersetup_temp
#echo " MYSQL 관리자 패스워드입력2" #/usr/local/mysql/bin/mysqladmin -u root -p reload |
관련자료
-
이전
-
다음