Á¦ 4° mysql¿¡ »õ·Î¿î »ç¿ëÀÚ ±ÇÇÑ Ãß°¡Çϱâ |
Ãâó : http://gwangcom.co.kr
Á¦ 4° mysql¿¡ »õ·Î¿î »ç¿ëÀÚ ±ÇÇÑ Ãß°¡Çϱ⠵ΰ¡Áö ¹æ¹ýÀ¸·Î »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù : GRANT ¹® »ç¿ë ¶Ç´Â mysql ½ÂÀÎ Å×À̺í Á÷Á¢ Á¶ÀÛ. GRANT ¹®À» »ç¿ëÇÏ´Â °ÍÀÌ ´õ ¼±È£µÇ´Â ¹æ¹ýÀÌ´Ù. ¾Æ·¡ÀÇ ¿¹Á¦´Â »õ·Î¿î »ç¿ëÀÚ¸¦ ¼³Á¤Çϱâ À§ÇØ ¾î¶»°Ô
mysql Ŭ¶óÀÌ¾ðÆ®¸¦ »ç¿ëÇÏ´ÂÁö º¸¿©ÁØ´Ù. GRANT ¹®À» ÀÌ¿ëÇØ »õ·Î¿î »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù: shell> mysql --user=root mysql mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost; mysql> GRANT USAGE ON *.* TO dummy@localhost;
À§ GRANT ¹®¿¡¼´Â ¼¼ ¸íÀÇ »ç¿ëÀÚ¸¦ ¼³Á¤ÇÑ´Ù: monty : ¾î´À °÷¿¡¼µç ¼¹ö¿¡ ¿¬°áÇÒ ¼ö ÀÖ´Â ¿ÏÀüÇÑ
½´ÆÛÀ¯ÀúÀÌÁö¸¸ ºñ¹Ð¹øÈ£¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. admin : ºñ¹Ð¹øÈ£ ¾øÀÌ localhost¿¡¼ Á¢¼ÓÇÒ ¼ö
ÀÖÀ¸¸ç reload¿Í process °ü¸®ÀÚ ±ÇÇÑÀ» ½ÂÀιÞÀº »ç¿ëÀÚ. À̰æ¿ì »ç¿ëÀÚ°¡
mysqladmin processlist »Ó¸¸ ¾Æ´Ï¶ó mysqladmin reload, mysqladmin refresh,
mysqladmin flush-* ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº Ãß°¡ÀûÀÎ GRANT ¹®À» »ç¿ëÇØ ³ªÁß¿¡ ½ÂÀÎÇÒ ¼ö ÀÖ´Ù. dummy : ºñ¹Ð¹øÈ£¾øÀÌ ¿¬°áÇÒ ¼ö ÀÖÁö¸¸ ¿ÀÁ÷ localhost¿¡¼¸¸
¿¬°á °¡´ÉÇÑ »ç¿ëÀÚ. ¶ÇÇÑ µ¿ÀÏÇÑ »ç¿ëÀÚ Á¢±Ù Á¤º¸¸¦ INSERT ¹®À» ÅëÇØ Á÷Á¢ Ãß°¡ÇÒ ¼ö ÀÖÀ¸¸ç À̰æ¿ì¿¡´Â ¼¹ö°¡ ½ÂÀÎ Å×À̺íÀ» ´Ù½Ã Àеµ·Ï ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù.(**FLUSH PRIVILEGES »ç¿ë**) shell> mysql --user=root mysql mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') mysql> INSERT INTO user SET Host='localhost',User='admin', Reload_priv='Y', Process_priv='Y'; mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','dummy',"); mysql> FLUSH PRIVILEGES; mysql ¹öÀü¿¡ µû¶ó À§¿¡¼ 'Y' °ªÀÌ ´Ù¸¦ ¼ö ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. 3.22.11 ¹öÀü ÀÌÈÄ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â È®ÀåµÈ INSERT ¹®Àº ¿©±â¼ admin »ç¿ëÀÚ¿¡°Ô »ç¿ëµÇ¾ú´Ù. ½´ÆÛÀ¯Àú¸¦ ¼³Á¤Çϱâ À§ÇØ ±ÇÇÑÇʵ带 'Y'·Î ÇÑ user Å×ÀÌºí ¸ñ·Ï¸¸ ¸¸µé¸é µÈ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. db ³ª host Å×ÀÌºí ¸ñ·ÏÀº ÇÊ¿ä¾ø´Ù. (** °ü¸®ÀÚ ±ÇÇÑÀº db³ª host Å×À̺í°ú´Â ÀüÇô °ü·ÃÀÌ ¾ø´Ù. db´Â Á¢¼ÓÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ »ó¼¼ÇÏ°Ô ¼³Á¤Çϰí host Å×À̺íÀº dbÅ×À̺íÀ» Á» ´õ Á¤±³ÇÏ°Ô ¼³Á¤Çϱâ À§ÇØ ÇÊ¿äÇÑ °ÍÀÌ´Ù. °ü¸®ÀÚ ±ÇÇÑÀº ¿ÀÁ÷ user Å×ÀÌºí¸¸ °ü·ÃµÇ¾îÀÖ´Ù **) ¸¶Áö¸· INSERT ¹®(dummy »ç¿ëÀÚ)¿¡¼´Â user Å×À̺íÀÇ ±ÇÇÑ Ä÷³ÀÌ ¸íÈ®ÇÏ°Ô ¼³Á¤µÇÁö ¾Ê¾Ò´Ù. ¿Ö³Ä¸é ÀÌ Ä÷³ÀÇ ±âº»°ªÀº 'N'·Î µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¿¡¼´Â custom À̶ó´Â
»ç¿ëÀÚ¸¦ Ãß°¡ÇÑ´Ù. customÀº localhost, server.domain, whitehouse.gov¿¡¼
Á¢¼ÓÇÒ ¼ö ÀÖ´Ù. localhost¿¡¼´Â bankaccount µ¥ÀÌÅͺ£À̽º¿¡¸¸
Á¢¼ÓÇÒ ¼ö ÀÖÀ¸¸ç whitehouse.gov¿¡¼´Â expenses µ¥ÀÌÅͺ£À̽º¿¡,
¸ðµç ¼¼ È£½ºÆ®»ó¿¡¼´Â customer µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ±æ ¿øÇÑ´Ù. ¸ðµç
¼¼ È£½ºÆ®»ó¿¡¼ stupid¶ó´Â ºñ¹Ð¹øÈ£¸¦ »ç¿ëÇÏ±æ ¿øÇÑ´Ù.
shell> mysql --user=root mysql mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* TO custom@localhost IDENTIFIED BY 'stupid'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON expenses.* IDENTIFIED BY 'stupid'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON customer.* TO custom@'%' IDENTIFIED BY 'stupid'; ½ÂÀÎ Å×À̺íÀ» Á÷Á¢ ¼öÁ¤ÇØ »ç¿ëÀÚ ±ÇÇÑÀ» ¼³Á¤ÇÏ·Á¸é ´ÙÀ½ÀÇ ¸í·ÉÀ» »ç¿ëÇÏÀÚ. (¸¶Áö¸·¿¡ FLUSH PRIVILEGES ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ):
shell> mysql --user=root mysql mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','custom',PASSWORD('stupid')); mysql> INSERT INTO user (Host,User,Password) VALUES('server.domain','custom',PASSWORD('stupid')); mysql> INSERT INTO user (Host,User,Password) VALUES('whitehouse.gov','custom',PASSWORD('stupid')); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y'); mysql> FLUSH PRIVILEGES; óÀ½ÀÇ ¼¼°¡Áö INSERT ¹®Àº custom »ç¿ëÀÚ°¡ ºñ¹Ð¹øÈ£¸¦ »ç¿ëÇÏ¿© ´Ù¾çÇÑ È£½ºÆ®¿¡¼ Á¢¼ÓÇÒ ¼ö ÀÖµµ·Ï user Å×ÀÌºí ¸ñ·ÏÀ» Ãß°¡ÇÑ´Ù. ±×·¸Áö¸¸ ±×¿¡°Ô ¾î¶°ÇÑ ÆÛ¹Ì¼Çµµ ½ÂÀÎÇÏÁö ¾Ê´Â´Ù. (¸ðµç ±ÇÇÑÀº ±âº»°ªÀ¸·Î 'N' ÀÌ´Ù) ´ÙÀ½ÀÇ ¼¼°¡Áö INSERT ¹®Àº ÀûÀýÇÑ È£½ºÆ®¿¡¼ Á¢¼ÓÀ» ÇÒ ¶§, custom ¿¡°Ô bankaccount, expenses, customer µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ±ÇÇÑÀ» ½ÂÀÎÇÏ´Â db Å×ÀÌºí ¸ñ·ÏÀ» Ãß°¡ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ½ÂÀÎ Å×À̺íÀ» Á÷Á¢ ¼öÁ¤ÇÏ¿´À¸¸é, º¯°æµÈ ±ÇÇÑÀ» Àû¿ëÇϱâ À§ÇØ ¼¹ö°¡ ½ÂÀÎ Å×À̺íÀ» ´Ù½Ã Àеµ·Ï ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ƯÁ¤ÇÑ »ç¿ëÀÚ°¡ ƯÁ¤ÇÑ µµ¸ÞÀÎÀÇ ½Ã½ºÅÛ¿¡¼ Á¢¼ÓÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ÇϰíÀÚ ÇÑ´Ù¸é, ´ÙÀ½°ú °°ÀÌ GRANT ¹®À» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù:
mysql> GRANT ... ON *.* TO myusername@"%.mydomainname.com" IDENTIFIED BY 'mypassword'; ½ÂÀÎ Å×À̺íÀ» Á÷Á¢ ¼öÁ¤ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù:
mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',PASSWORD('mypassword'),...); mysql> FLUSH PRIVILEGES; ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
½ÂÀÎ Å×À̺íÀ» ´Ù·ç±â À§ÇØ xmysqladmin, mysql_webadmin,
xmysql ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. http://www.mysql.com/Contrib
¿¡¼ ÀÌ·¯ÇÑ À¯Æ¿¸®Æ¼¸¦ ãÀ» ¼ö ÀÖ´Ù. |