| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 35. ·ê ½Ã½ºÅÛ | Fast Forward | Next |
PostgreSQLÀÇ ·ê ½Ã½ºÅÛ¿¡ ÀÇÇÑ Äõ¸®ÀÇ ÀçÀÛ¼º¿¡ ÀÇÇØ, º»·¡ÀÇ Äõ¸®·Î »ç¿ëµÈ °ÍÀº ¾Æ´Ñ ´Ù¸¥ Å×À̺í/ºä°¡ Á¢±ÙµË´Ï´Ù. °»½Å ·êÀ» »ç¿ëÇÏ´Â °Í¿¡ ÀÇÇØ Å×ÀÌºí¿¡ ±âÀÔÇØ, Á¢±ÙÀ» Æ÷ÇÔ ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ÀçÀÛ¼º ·ê¿¡ ´Ù¸¥ ¼ÒÀ¯ÀÚ´Â ¾ø½À´Ï´Ù. ¸±·¹À̼Ç(Å×ÀÌºí ¶Ç´Â ºä)ÀÇ ¼ÒÀ¯ÀÚ´Â ÀÚµ¿ÀûÀ¸·Î ±×°÷¿¡ Á¤ÀÇµÈ ÀçÀÛ¼º ·êÀÇ ¼ÒÀ¯ÀÚ°¡ µË´Ï´Ù. PostgreSQLÀÇ ·ê ½Ã½ºÅÛÀº ±âº»°ªÀÇ Á¢±Ù Á¦¾î ½Ã½ºÅÛÀÇ ÇൿÀ» º¯°æÇÕ´Ï´Ù. ·ê¿¡ ÀÇÇØ »ç¿ëµÇ´Â ¸±·¹À̼ÇÀº, ·êÀ» È£ÃâÇÑ »ç¿ëÀÚÀÇ ±ÇÇÑÀº ¾Æ´Ï°í, ·ê ¼ÒÀ¯ÀÚÀÇ ±ÇÇÑÀ¸·Î üũµË´Ï´Ù. À̰ÍÀº, »ç¿ëÀÚ´Â Äõ¸®·Î ¸í¸íÇÏ´Â Å×À̺í/ºä¿¡ ´ëÇØ ¿ä±¸µÈ ±ÇÇѸ¸ ÀÖÀ¸¸é µÇ´Â °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¸é, ÀÌÇÏ¿Í °°ÀÌ ÇÕ´Ï´Ù. ¾î´À »ç¿ëÀÚ°¡, ¸î°³ÀÇ °³ÀοëÀÇ, ±× ¿Ü´Â »ç¹«¼Ò¿¡¼ ºñ¼°¡ ÀÌ¿ëÇϱâ À§ÇÑ, ÀüȹøÈ£ÀÇ ¸®½ºÆ®¸¦ °¡Áö°í ÀÖ¾ú´Ù°í ÇÕ´Ï´Ù. »ç¿ëÀÚ´Â ´ÙÀ½°ú °°ÀÌ ±¸ÃàÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
CREATE TABLE phone_data (person text, phone text, private boolean);
CREATE VIEW phone_number AS
SELECT person, phone FROM phone_data WHERE NOT private;
GRANT SELECT ON phone_number TO secretary;
±× »ç¿ëÀÚ(¿Í µ¥ÀÌÅͺ£À̽ºÀÇ ½´ÆÛ À¯Àú) Àܴ̿ phone_dataÅ×ÀÌºí¿¡ Á¢±Ù ÇÒ ¼ö ¾ø½À´Ï´Ù. ±×·¯³ª, GRANT¿¡ ÀÇÇØ ºñ¼´Â phone_numberºä¿¡ ´ëÇØ SELECTÇÒ ¼ö ÀÖ½À´Ï´Ù. ·ê ½Ã½ºÅÛÀº phone_number·ÎºÎÅÍÀÇ SELECTÁ¶ÀÛÀ» phone_data·ÎºÎÅÍÀÇ SELECTÁ¶ÀÛ¿¡ °íÃÄ ½á private°¡ °ÅÁþÀÌ µÇ°í ÀÖ´Â Ç׸ñ¸¸À» »ç¿ëÇÑ´Ù´Â Á¶°ÇÀ» µ¡ºÙÀÔ´Ï´Ù. ±× »ç¿ëÀÚ´Â phone_numberÀÇ ¼ÒÀ¯ÀÚ, µû¶ó ·êÀÇ ¼ÒÀ¯ÀÚÀ̱⠶§¹®¿¡, phone_dataÀÇ Àб⿡ ´ëÇÑ Á¢±ÙÀº ±× »ç¿ëÀÚÀÇ ±ÇÇÑ¿¡ µû¶ó üũµÇ¾î Äõ¸®¸¦ ¹Þ¾Æµé¿©µµ ±¦Âú°Ô µË´Ï´Ù. phone_number¿¡ÀÇ Á¢±Ùµµ üũµË´Ï´Ù¸¸, À̰ÍÀº È£ÃâÇÑ »ç¿ëÀÚ¿¡ ´ëÇØ¼ ÇàÇØÁö±â ¶§¹®¿¡, ºñ¼¿Í »ç¿ëÀÚ Àܴ̿ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
±ÇÇÑÀº ·ê ¸¶´Ù üũµË´Ï´Ù. ±×·¯´Ï±î ºñ¼¸¸ÀÌ ÇöÀç ÀϹÝÀÇ ÀüȹøÈ£¸¦ ÂüÁ¶ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯³ª, ºñ¼´Â ´Ù¸¥ ºä¸¦ ÀÛ¼ºÇØ, °Å±â¿¡ PUBLIC¿¡ ´ëÇÑ Á¢±Ù Çã°¡¸¦ ÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô Çϸé, ºñ¼ÀÇ ºä¸¦ ÅëÇØ ´©±¸³ª phone_numberµ¥ÀÌÅ͸¦ º¼ ¼ö°¡ ÀÖ½À´Ï´Ù. ºñ¼°¡ ÇÒ ¼ö ¾ø´Â °ÍÀº phone_data¿¡ Á÷Á¢ Á¢±ÙÇÏ´Â ºä¸¦ ¸¸µå´Â °ÍÀÔ´Ï´Ù (½ÇÁ¦·Î´Â ÀÛ¼ºÀº ÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, Á¢±ÙÀº ¸ðµÎ, ±ÇÇÑ Ã¼Å©·Î °ÅÀýµË´Ï´Ù). ±×¸®°í, ºñ¼°¡ µ¶ÀÚÀûÀÎ phone_numberºä¸¦ ¿¾ú´ø °ÍÀ» »ç¿ëÀÚ°¡°¡ ±ú´ÝÀº ½ÃÁ¡¿¡¼, ºñ¼ÀÇ ±ÇÇÑÀ» äÅÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Áï½Ã, ºñ¼ÀÇ ºä¿¡ÀÇ Á¢±ÙÀº ½ÇÆÐ·Î ³¡³³´Ï´Ù.
ÀÌ ·ê ¸¶´ÙÀÇ Ã¼Å©°¡ º¸¾È ±¸¸ÛÀÌ µÈ´Ù°í »ý°¢ÇÏ´Â »ç¶÷ÀÌ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù¸¸, ½ÇÁ¦·Î´Â ±×·¸Áö´Â ¾Ê½À´Ï´Ù. ¸¸¾à ±â´ÉÇÏÁö ¾ÊÀ¸¸é ºñ¼´Â 1ÀÏ 1ȸ phone_number¿Í °°Àº ¿À» °¡Áø Å×À̺íÀ» ÁغñÇØ, µ¥ÀÌÅ͸¦ °Å±â¿¡ º¹»çÇØ¾ßÇÕ´Ï´Ù. µ¥ÀÌÅÍ´Â ±× »ç¿ëÀÚÀÇ °ÍÀ̱⠶§¹®¿¡, ´©±¸¿¡°Ô Á¢±Ù±ÇÇÑÀ» ÁÖ´ÂÁö´Â ±×ÀÇ ÀÚÀ¯ÀÔ´Ï´Ù. GRANT´Â"´ç½ÅÀ» ½Å¿ëÇϰí ÀÖ´Ù"´Â °ÍÀÔ´Ï´Ù. ½Å¿ëÇϰí ÀÖ´Â ´©±º°¡°¡ ÀÌ·¯ÇÑ ÀÏÀ» ½Ç½ÃÇßÀ» °æ¿ì´Â, »ý°¢À» ´Ù½ÃÇØREVOKEÇØ ÁÖ¼¼¿ä.
ÀÌ ±â±¸´Â °»½Å ·ê¿¡µµ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀüÀýÀÇ ¿¹¿¡ ´ëÇØ, µ¥ÀÌÅͺ£À̽ºÀÇ Å×À̺íÀÇ ¼ÒÀ¯ÀÚ´Â shoelaceºä¿¡ ´ëÇØ, ´©±º°¡¿¡°Ô SELECT, INSERT, UPDATE, DELETE±ÇÇÑÀ» ÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯³ª, shoelace_log¿¡ ´ëÇØ¼´Â SELECT»ÓÀÔ´Ï´Ù. ·Î±× Ç׸ñÀ» ±âÀÔÇÏ´Â ·ê ¾×¼ÇÀº ÁöÀå¾øÀÌ ½ÇÇàµÇ¾î ¶Ç, ´Ù¸¥ »ç¿ëÀÚ´Â ·Î±× Ç׸ñÀ» º¼ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯³ª, ´Ù¸¥ »ç¿ëÀÚ´Â Ç׸ñÀ» ³¯Á¶Çϰųª ÀÌ¹Ì Á¸ÀçÇÏ´Â Ç׸ñÀ» Á¶ÀÛÇϰųª, ȤÀº »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù.