강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

12. MYSQL신규사용자 설정 쉘스크립트(dbusersetup)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

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사용자명은 동일한 경우가 많습니다. 따라서 동일 할 수도 있고 동일하지 않을 수도 있기 때문에 이 둘은 구분을 해둔 것입니다.
실제 사용예를 보십시요.


aac918f3867b2d42f8e3a6358d9d25c1_1643864607_5534.png


dbusersetup sskimdb sskim 12345라고 입력하시면 관리자 패스워드를 입력해주기만 하면 DB셋팅이 끝납니다.

그리고 다음은 실제로 생성된 DB내용을 확인한 것입니다확인을 위해서 mysql 관리자 계정으로 접속합니다.


aac918f3867b2d42f8e3a6358d9d25c1_1643864630_4751.png

 

접속한 다음 다음과 같이 sskimdb라는 데이터베이스가 생성이 되었는가를 show databases라는 명령문으로 확인한 것입니다.


 aac918f3867b2d42f8e3a6358d9d25c1_1643864654_3731.png 


그리고 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',
'N','N','N','N','N','N','N','N','N','N',1,'','','','','','');" >> /tmp/mysql_dbusersetup_temp

 

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

 


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,787 개
  • 현재 접속자 :  247 명