GRANT

Name

GRANT -- ¾×¼¼½º±ÇÇÑÀ» Á¤ÀÇÇÑ´Ù

Synopsis

GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] 
tablename
 [, ...]
    TO { 
username
 | GROUP 
groupname
 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { USAGE | SELECT | UPDATE }
    [,...] | ALL [ PRIVILEGES ] }
    ON SEQUENCE 
sequencename
 [, ...]
    TO { 
username
 | GROUP 
groupname
 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE 
dbname
 [, ...]
    TO { 
username
 | GROUP 
groupname
 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTION 
funcname
 ( [ [ 
argmode
 ] [ 
argname
 ] 
argtype
 [, ...] ] ) [, ...]
    TO { 
username
 | GROUP 
groupname
 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE 
langname
 [, ...]
    TO { 
username
 | GROUP 
groupname
 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA 
schemaname
 [, ...]
    TO { 
username
 | GROUP 
groupname
 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE 
tablespacename
 [, ...]
    TO { 
username
 | GROUP 
groupname
 | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT 
role
 [, ...] TO 
username
 [, ...] [ WITH ADMIN OPTION ]

¼³¸í

GRANT¿¡´Â ±âº»ÀûÀ¸·Î 2°³ÀÇ Á¾·ù°¡ ÀÖ½À´Ï´Ù. 1°³´Â µ¥ÀÌÅͺ£À̽º ¿ÀºêÁ§Æ®(Å×À̺í, ºä, ¼ø¼­, µ¥ÀÌÅͺ£À̽º, ÇÔ¼ö, ¼ö¼Ó ¾ð¾î, schema, Å×ÀÌºí °ø°£)¿¡ ´ëÇÑ ±ÇÇÑÀÇ ºÎ¿©, ´Ù¸¥ ÇѰ³´Â ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀÇ ºÎ¿©ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Á¾·ù´Â ¸¹Àº Á¡ÀÌ ´à¾ÒÁö¸¸, °³º°ÀûÀ¸·Î Â÷ÀÌÁ¡ÀÌ ÃæºÐÈ÷ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.

PostgreSQL 8.1¿¡¼­, »ç¿ëÀÚ¿Í ±×·ìÀ̶ó°í ÇÏ´Â °³³äÀº ·Ñ·Î ºÒ¸®´Â ´ÜÀÏ Á¾·ùÀÇ ½Çü¿¡ ÅëÇյǾú½À´Ï´Ù. µû¶ó¼­, ´õÀÌ»ó GROUPŰ¿öµå¸¦ »ç¿ëÇØ ±ÇÇÑÀ» ºÎ¿©ÇÏ´Â ´ë»óÀÌ ±×·ìÀΰ¡ ÇÑ »ç¿ëÀÚÀΰ¡¸¦ ±¸º°ÇÏ´Â Çʿ伺ÀÌ ¾ø¾îÁ³½À´Ï´Ù. GROUP´Â ¾ÆÁ÷ ÀÌ ¸í·É·Î »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, Àǹ̰¡ ¾ø´Â ´Ü¾îÀÔ´Ï´Ù.

µ¥ÀÌÅͺ£À̽º ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ GRANT

ÀÌ Á¾·ùÀÇGRANT¸í·ÉÀº µ¥ÀÌÅͺ£À̽º ¿ÀºêÁ§Æ®ÀÇ Æ¯Á¤ÀÇ ±ÇÇÑÀ» 1°³³ª ±× ÀÌ»óÀÇ ·Ñ¿¡ ºÎ¿©ÇÕ´Ï´Ù. ÀÌ¹Ì ±ÇÇÑÀÌ ´Ù¸¥ ·Ñ¿¡ ºÎ¿©µÇ°í ÀÖ´Â °æ¿ì¿¡¼­µµ Ãß°¡·Î¼­ ºÎ¿©µË´Ï´Ù.

PUBLICŰ¿öµå´Â ÇâÈÄ ÀÛ¼ºµÇ´Â ·ÑÀ» Æ÷ÇÔÇÑ ¸ðµç ·Ñ¿¡ÀÇ Çã°¡¸¦ ³ªÅ¸³À´Ï´Ù. PUBLIC´Â Ç×»ó ¸ðµç ·ÑÀ» Ç×»ó Æ÷ÇÔÇÑ ¾Ï¹¬ÀûÀ¸·Î Á¤ÀÇµÈ ±×·ìÀ̶ó°í »ý°¢ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. °³°³ÀÇ ·ÑÀº ¸ðµÎ ·Ñ¿¡ Á÷Á¢ Çã°¡µÈ ±ÇÇÑ ·ÑÀÌ ÇöÀç ¼ÓÇϰí ÀÖ´Â ·Ñ¿¡ Çã°¡µÈ ±ÇÇÑ ±×¸®°íPUBLIC¿¡ Çã°¡µÈ ±ÇÇÑÀ» ¸ÂÃá ±ÇÇÑÀ» °¡Áö°í ÀÖ½À´Ï´Ù.

WITH GRANT OPTION°¡ ÁöÁ¤µÇ¸é ±ÇÇÑÀ»ÀÇ ¼ö·ÉÀÚ´Â ±× ÈÄ, ±× ¹Û¿¡ ±× ±ÇÇÑÀ» ÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·£Æ® ¿É¼ÇÀÌ ¾ø´Â °æ¿ì, ¼ö·ÉÀÚ´Â À̰ÍÀ» ½Ç½ÃÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. ±×·£Æ® ¿É¼ÇÀºPUBLIC¿¡´Â ÁÙ ¼ö°¡ ¾ø½À´Ï´Ù.

¿ÀºêÁ§Æ® ¼ÒÀ¯ÀÚ(Åë»óÀº ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÑ »ç¿ëÀÚ)´Â ±âº»°ªÀ¸·Î ¸ðµç ±ÇÇÑÀ» º¸°ü À¯ÁöÇϰí Àֱ⠶§¹®¿¡, ¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚ¿¡°Ô ±ÇÇÑÀ» Çã°¡ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù (±×·¯³ª ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼ºÀÚ°¡ ¾ÈÀü¼ºÀ» È®º¸Çϱâ À§Çؼ­ ½º½º·ÎÀÇ ±ÇÇÑÀ» Ãë¼ÒÇÏ´Â °ÍÀº °¡´ÉÇÕ´Ï´Ù). ¿ÀºêÁ§Æ®¸¦ »èÁ¦ÇÏ´Â ±ÇÇÑÀ̳ª ¾î¶°ÇÑ ¹æ¹ýÀ¸·Î ¿ÀºêÁ§Æ®ÀÇ Á¤ÀǸ¦ º¯°æÇÏ´Â ±ÇÇÑÀº ºÎ¿© °¡´ÉÇÑ ±ÇÇÑÀ¸·Î¼­ ±â¼úÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. ÀÌ·¯ÇÑ ±ÇÇÑÀº ¼ÒÀ¯ÀÚ °íÀ¯ÀÇ °ÍÀ̸ç Çã°¡Çϰųª Ãë¼ÒÇϰųª ÇÒ ¼ö ¾ø½À´Ï´Ù. ¼ÒÀ¯ÀÚ´Â ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ ¸ðµç ±×·£Æ® ¿É¼Çµµ ¾Ï¹¬ÀûÀ¸·Î º¸°ü À¯ÁöÇϰí ÀÖ½À´Ï´Ù.

¿ÀºêÁ§Æ®ÀÇ Á¾·ù¿¡ µû¶ó¼­´Â ±âº» ±ÇÇÑÀ¸·Î¼­ ÃÖÃʺÎÅÍ ¸î°³ÀÇ ±ÇÇÑÀÌPUBLIC¿¡ ºÎ¿©µÇ°í ÀÖ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ±âº»°ª¿¡¼­´Â Å×À̺í, schema, Å×ÀÌºí °ø°£¿¡ °üÇØ¼­ PUBLIC¿¡°Ô ÁÙ ¼ö ÀÖ¾ú´ø ¾×¼¼½º±ÇÇÑÀº ¾ø½À´Ï´Ù. PUBLIC¿¡°Ô ÁÙ ¼ö ÀÖ´Â °ÍÀºCONNECT±ÇÇÑ, µ¥ÀÌÅͺ£À̽ºÀÇTEMPÅ×À̺íÀÇ ÀÛ¼º ±ÇÇÑ, ÇÔ¼öÀÇEXECUTE±ÇÇÑ, ¾ð¾îÀÇUSAGE±ÇÇÑ µîÀÔ´Ï´Ù. ¹°·Ð ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼ºÀÚ´Â ÀÌ·¯ÇÑ ±ÇÇÑÀ» Ãë¼ÒÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù (ÃÖ´ëÇÑÀÇ ¾ÈÀü¼ºÀ» ¾ò±â À§ÇØREVOKE¸í·ÉÀº ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÑ Æ®·£Àè¼Ç(transaction)¿Í °°Àº Æ®·£Àè¼Ç(transaction)³»¿¡¼­ ¹ßÇàÇØ ÁÖ¼¼¿ä. ±×·¯¸é ´Ù¸¥ »ç¿ëÀÚ°¡ ±× ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ´Â ½Ã°£Àº ¾ø¾îÁý´Ï´Ù).

¼³Á¤ °¡´ÉÇÑ ±ÇÇÑÀº ÀÌÇÏÀÇ °ÍÀÔ´Ï´Ù.

SELECT

ÁöÁ¤ÇÑ Å×À̺í, ºä, ¼ø¼­ÀÇ ÀÓÀÇÀÇ ¿­¿¡ ´ëÇÑ SELECT À» Çã°¡ÇÕ´Ï´Ù. ¶Ç, COPY TOÀÇ »ç¿ëµµ Çã°¡ÇÕ´Ï´Ù. UPDATE (ÀÌ)³ª DELETE ·Î Á¸ÀçÇÏ´Â ¿­À» ÂüÁ¶Çϱâ À§Çؼ­µµ, ÀÌ ±ÇÇÑÀº ÇÊ¿äÇÕ´Ï´Ù. ¼ø¼­¿¡¼­´Â ÀÌ ±ÇÇÑ¿¡ ÀÇÇØcurrvalÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

INSERT

ÁöÁ¤ÇÑ Å×ÀÌºí¿¡ÀÇ ½Å±ÔÇàÀÇ °Í INSERT À» Çã°¡ÇÕ´Ï´Ù. ¶Ç, COPY FROMÀÇ »ç¿ëµµ Çã°¡ÇÕ´Ï´Ù.

UPDATE

ÁöÁ¤ÇÑ Å×À̺íÀÇ ÀÓÀÇÀÇ ¿­¿¡ ´ëÇÑ UPDATE À» Çã°¡ÇÕ´Ï´Ù. (½ÇÁ¦·Î´Â, ´Ü¼øÇÏÁö ¾Ê´ÂUPDATE¸í·ÉÀº ¸ðµÎ,SELECT±ÇÇÑÀ»°ú °°ÀÌ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¾î´À ÇàÀ» °»½ÅÇØ¾ßÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ À§ÇØ ¶Ç´Â ¿­ÀÇ »õ·Î¿î °ªÀ» °è»êÇϱâ À§ÇØ ¶Ç´Â ±× ¾çÂÊ ¸ðµÎÀ̱⠶§¹®¿¡ Å×ÀÌºí¿­À» ÂüÁ¶ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ) SELECT ... FOR UPDATE¹×SELECT ... FOR SHAREµµ SELECT±ÇÇÑ¿¡ °¡¼¼ÇØ, ÀÌ ±ÇÇÑÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¼ø¼­¿¡¼­´Â, ÀÌ ±ÇÇÑ¿¡ ÀÇÇØnextval¹×setvalÀÇ »ç¿ëÀÌ Çã°¡µË´Ï´Ù.

DELETE

ÁöÁ¤ÇÑ Å×ÀÌºí¿¡¼­ÀÇ ÇàÀÇ DELETE À» Çã°¡ÇÕ´Ï´Ù. (½ÇÁ¦·Î´Â, ´Ü¼øÇÏÁö ¾Ê´ÂDELETE¸í·ÉÀº ¸ðµÎ,SELECT±ÇÇÑÀ»°ú °°ÀÌ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¾î´À ÇàÀ» »èÁ¦ÇؾßÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ À§Çؼ­ Å×ÀÌºí¿­À» ÂüÁ¶ÇÒ Çʿ䰡 Àֱ⠶§¹®ÀÔ´Ï´Ù. )

REFERENCES

¿ÜºÎ Ű Á¦¾àÀ» ÀÛ¼ºÇÏ·Á¸é , ÂüÁ¶ÇÏ´Â Ãø°ú ÂüÁ¶µÇ´Â ÃøÀÇ ¾çÂÊ ¸ðµÎÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼­, ÀÌ ±ÇÇÑÀ» °¡Áö°í ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

TRIGGER

ÁöÁ¤ÇÑ Å×À̺í»óÀÇ Æ®¸®°ÅÀÇ ÀÛ¼ºÀ» Çã°¡ÇÕ´Ï´Ù ( CREATE TRIGGER ¹®ÀåÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä).

CREATE

´ë»óÀÌ µ¥ÀÌÅͺ£À̽ºÀÇ °æ¿ì´Â µ¥ÀÌÅͺ£À̽º³»¿¡¼­ÀÇ ½Å±Ô schemaÀÇ ÀÛ¼ºÀ» Çã°¡ÇÕ´Ï´Ù.

´ë»óÀÌ schemaÀÇ °æ¿ì´Â schema³»¿¡¼­ÀÇ »õ·Î¿î ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼ºÀ» Çã°¡ÇÕ´Ï´Ù. ±âÁ¸ÀÇ ¿ÀºêÁ§Æ®ÀÇ À̸§À» º¯°æÇÏ·Á¸é, ¿ÀºêÁ§Æ®¸¦ ¼ÒÀ¯ÇØ, AND , ±× ¿ÀºêÁ§Æ®°¡ µé¾î°¡ ÀÖ´Â schema¿¡ ´ëÇØ¼­ ÀÌ ±ÇÇÑÀ» º¸°ü À¯ÁöÇØ¾ß ÇÕ´Ï´Ù.

´ë»óÀÌ Å×ÀÌºí °ø°£ÀÇ °æ¿ì´Â Å×ÀÌºí °ø°£³»¿¡¼­ÀÇ Å×À̺í°ú À妽º, ÀϽà ÆÄÀÏÀÇ ÀÛ¼º°ú ±âº»ÀÇ Å×ÀÌºí °ø°£À¸·Î¼­ ÀÌ Å×ÀÌºí °ø°£À» °¡Áö´Â µ¥ÀÌÅͺ£À̽ºÀÇ ÀÛ¼ºÀ» Çã°¡ÇÕ´Ï´Ù (ÀÌ ±ÇÇÑÀÇ Ãë¼Ò¿¡ ÀÇÇØ ±âÁ¸ÀÇ ¿ÀºêÁ§Æ®ÀÇ À§Ä¡°¡ ¹Ù²îÁö ¾Ê´Â ´Ù´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.)

CONNECT

»ç¿ëÀÚ´Â ÁöÁ¤µÈ µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ±ÇÇÑÀº(pg_hba.conf·Î °­¿äµÇ´Â Á¦ÇÑÀÇ °Ë»ç¿¡ ÀÇÇØ) Á¢¼Ó ½ÃÀ۽ÿ¡ °Ë»çµË´Ï´Ù.

TEMPORARY
TEMP

ÁöÁ¤ÇÑ µ¥ÀÌÅͺ£À̽ºÀÇ »ç¿ëÁß¿¡ Àӽà Å×À̺íÀ» ÀÛ¼ºÇÏ´Â °ÍÀ» Çã°¡ÇÕ´Ï´Ù.

EXECUTE

ÁöÁ¤µÈ ÇÔ¼ö, ÇÑÃþ ´õ ±× ÇÔ¼ö·Î ½ÇÀåµÇ°í ÀÖ´Â ÀÓÀÇÀÇ ¿¬»êÀÚÀÇ »ç¿ëÀ» Çã°¡ÇÕ´Ï´Ù. À̰ÍÀº ÇÔ¼ö¿¡ Àû¿ëÇÒ ¼ö°¡ ÀÖ´Â À¯ÀÏÇÑ ±ÇÇÑÀÔ´Ï´Ù (ÀÌ ±¸¹®Àº Áý¾à ÇÔ¼ö¿¡ ´ëÇØ¼­µµ ¶È°°ÀÌ ±â´ÉÇÕ´Ï´Ù).

USAGE

ÀýÂ÷ ¾ð¾î¿¡ ´ëÇØ ±× ¾ð¾î·Î ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â °ÍÀ» Çã°¡ÇÕ´Ï´Ù. À̰ÍÀº ÀýÂ÷ ¾ð¾î¿¡ Àû¿ëÇÒ ¼ö°¡ ÀÖ´Â À¯ÀÏÇÑ ±ÇÇÑÀÔ´Ï´Ù.

schema¿¡ ´ëÇØ ÁöÁ¤ÇÑ schema¿¡ Æ÷ÇԵǴ ¿ÀºêÁ§Æ®¿¡ÀÇ ¾×¼¼½º¸¦ Çã°¡ÇÕ´Ï´Ù(¿ÀºêÁ§Æ® ÀÚüÀÇ ±ÇÇÑ ¿ä°ÇÀÌ Ã¤¿öÁö°í ÀÖ´Â °æ¿ì). ±âº»ÀûÀ¸·Î´Â, ÀÌ ±ÇÇÑ¿¡ ÀÇÇØ schema³»ÀÇ ¿ÀºêÁ§Æ®¸¦"°Ë»ö"ÇÏ´Â ±ÇÇѵµ ÀÎÁ¤µË´Ï´Ù. ÀÌ ±ÇÇÑÀÌ ¾ø¾îµµ, ¿¹¸¦ µé¸é ½Ã½ºÅÛ Å×À̺íÀ» Äõ¸®ÇÏ´Â °ÍÀ¸·Î ¿©ÀüÈ÷ ±× ¿ÀºêÁ§Æ® À̸§À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ÀÌ ±ÇÇÑÀ» ¾ø¾Ø ´ÙÀ½¿¡µµ °è¼Ó Á¸ÀçÇϰí ÀÖ´Â ¿¬±¸ ÃÖÁ¾ ´Ü°è¿¡ ÀÌ·¯ÇÑ °Ë»öÀ» ÀÌÀü¿¡ ½ÇÇàÇϰí ÀÖ´ø ¸í·É¹®À» °¡Áö°í ÀÖÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, À̰ÍÀº ¿ÀºêÁ§Æ®¿¡ÀÇ Á¢±ÙÀ» ¸·´Â ¿ÏÀüÇÏ°Ô ¾ÈÀüÇÑ ¹æ¹ýÀÌ ¾Æ´Õ´Ï´Ù.

½ÃÄö½º¿¡ ´ëÇØ, ÀÌ ±ÇÇÑÀºcurrval¹× nextvalÇÔ¼öÀÇ »ç¿ëÀ» Çã°¡ÇÕ´Ï´Ù.

ALL PRIVILEGES

ÀÌ¿ë °¡´ÉÇÑ ¸ðµç ±ÇÇÑÀ» ÇÑ ¹ø¿¡ ºÎ¿©ÇÕ´Ï´Ù. PRIVILEGESŰ¿öµå´ÂPostgreSQL¿¡¼­´Â »ý·« °¡´ÉÇÏÁö¸¸, ¾ö¹ÐÇϰԴ SQL¿¡¼­´Â ÇʼöÀÔ´Ï´Ù.

±× ¿ÜÀÇ ¸í·ÉÀº ½ÇÇà¿¡ ÇÊ¿äÇÑ ±ÇÇÑÀº, ±× ¸í·ÉÀºÀÇ ÂüÁ¶ ÆäÀÌÁö¿¡¼­ ³ªÅ¸³ª°í ÀÖ½À´Ï´Ù.

GRANT on Roles

ÀÌ GRANT¸í·ÉÀÇ ´Ù¸¥Á¡Àº ÇÑ ·Ñ¿¡¼­ 1°³ÀÌ»óÀÇ ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀ» ºÎ¿©ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ ·Ñ¿¡ ºÎ¿©µÈ ±ÇÇÑÀ» °¢ ¸â¹ö¿¡°Ô ÀüÇϱ⠶§¹®¿¡, ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀº Áß¿äÇÕ´Ï´Ù.

WITH ADMIN OPTION°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì, ¸â¹ö´Â ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀ» ±× ¹Û¿¡ ºÎ¿©ÇÒ ¼ö°¡ ÀÖ°Ô µË´Ï´Ù. »Ó¸¸ ¾Æ´Ï¶ó ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀ» ÃëµæÇÒ ¼öµµ ÀÖ°Ô µË´Ï´Ù. Administrator ¿É¼ÇÀÌ ¾øÀ¸¸é ÀÏ¹Ý À¯Àú´Â ¿Ü¿¡ÀÇ ±ÇÇÑÀÇ ºÎ¿©³ª äÅÃÇÏ°íµµ ½Ç½ÃÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. ±×·¯³ª, µ¥ÀÌÅͺ£À̽º ½´ÆÛ À¯Àú´Â ¸ðµç ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀ» ´©±¸¶óµµ ºÎ¿©Çϰųª »èÁ¦Çϰųª ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. CREATEROLE±ÇÇÑÀ» °¡Áö´Â ·ÑÀº, ½´ÆÛ À¯Àú ·Ñ ÀÌ¿ÜÀÇ ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀÇ ºÎ¿©, Ãë¼Ò°¡ °¡´ÉÇÕ´Ï´Ù.

±ÇÇÑÀÇ °æ¿ì¿Í ´Þ¸®, ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀ»PUBLIC¿¡ ºÎ¿©ÇÒ ¼ö ¾ø½À´Ï´Ù. ¶Ç, ÀÌ ¸í·ÉÀº ±¸¹®¿¡¼­´Â ¹«ÀǹÌÇÑGROUP¶ó°í ÇÏ´Â ´Ü¾î¸¦ ¹Þ¾ÆµéÀÌÁö ¾Ê´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.

ÁÖ¼®

REVOKE ¸í·ÉÀº Á¢±Ù ±ÇÇÑÀ» Ãë¼ÒÇÏ·Á°í »ç¿ëÇÕ´Ï´Ù.

¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚµµ ¾Æ´Ï°í ±× ¿ÀºêÁ§Æ®¿¡ ¾î¶² ±ÇÇѵµ °¡ÁöÁö ¾Ê´Â »ç¿ëÀÚ°¡ ±× ¿ÀºêÁ§Æ®ÀÇ ±ÇÇÑÀ»GRANTÇÏ·Á°í ÇØµµ ¸í·ÉÀÇ ½ÇÇàÀº Áï½Ã ½ÇÆÐÇÕ´Ï´Ù. ¾î¶°ÇÑ ±ÇÇÑÀ» °¡Áö°í ÀÖ´Â ÇÑ, ¸í·ÉÀÇ ½ÇÇàÀº ÁøÇàÇÏÁö¸¸, ÁÙ ¼ö ÀÖ´Â ±ÇÇÑÀº ±× »ç¿ëÀÚ°¡ ±×·£Æ® ¿É¼ÇÀ» °¡Áö´Â °ÍÀÔ´Ï´Ù. ±×·£Æ® ¿É¼ÇÀ» °¡Áö°í ÀÖÁö ¾ÊÀº °æ¿ì,GRANT ALL PRIVILEGES±¸¹®Àº °æ°í ¸Þ¼¼Áö¸¦ ¹ßÇ¥ÇÕ´Ï´Ù. ÇÑÆí, ±× ¿ÜÀÇ ±¸¹®¿¡¼­´Â ¸í·ÉÀ¸·Î À̸§À» ÁöÁ¤ÇÑ ±ÇÇÑ¿¡ °üÇÑ ±×·£Æ® ¿É¼ÇÀ» °¡Áö°í ÀÖÁö ¾ÊÀº °æ¿ì¿¡ °æ°í ¸Þ¼¼Áö¸¦ ¹ßÇ¥ÇÕ´Ï´Ù (¿ø¸®»ó, ¿©±â±îÁöÀÇ ¼³¸íÀº ¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚ¿¡ ´ëÇØ¼­µµ Àû¿ëµÇÁö¸¸, ¼ÒÀ¯ÀÚ´Â Ç×»ó ¸ðµç ±×·£Æ® ¿É¼ÇÀ» º¸°ü À¯ÁöÇϰí ÀÖ´Â °ÍÀ¸·Î¼­ ´Ù·ç¾îÁö±â ¶§¹®¿¡, ÀÌ·¯ÇÑ »óÅ´ °áÄÚ ÀϾÁö ¾Ê½À´Ï´Ù).

µ¥ÀÌÅͺ£À̽º ½´ÆÛ À¯Àú¸¸ÀÌ ¿ÀºêÁ§Æ®¿¡ °üÇÑ ±ÇÇÑ ¼³Á¤¿¡ °ü°è¾øÀÌ ¸ðµç ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â °Í¿¡´Â ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. ½´ÆÛ À¯Àú°¡ °¡Áö´Â ±ÇÇÑÀº Unix ½Ã½ºÅÛ¿¡ À־ÀÇroot±ÇÇÑÀ» ´à¾Æ ÀÖ½À´Ï´Ù. root¿Í °°ÀÌ Àý´ë·Î ÇÊ¿äÇÑ °æ¿ì Àܴ̿ ½´ÆÛ À¯Àú·Î¼­ Á¶ÀÛÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °ÍÀÌ Çö¸íÇÕ´Ï´Ù.

½´ÆÛ À¯Àú°¡GRANT³ªREVOKEÀÇ ¹ßÇàÀ» ¼±ÅÃÇßÀ» °æ¿ì, ±×·¯ÇÑ ¸í·ÉÀ» ´ë»óÀ¸·Î ÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚ°¡ ¹ßÇàÇß´ÂÁö¿Í °°ÀÌ ½ÇÇàµË´Ï´Ù. ƯÈ÷, ÀÌ·¯ÇÑ ¸í·ÉÀ¸·Î ÁÖ¾îÁö´Â ±ÇÇÑÀº ¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚ¿¡ ÀÇÇØ ÁÖ¾îÁø °ÍÀ¸·Î¼­ ³ªÅ¸³»Áý´Ï´Ù. (·ÑÀÇ ¸â¹ö ÀÚ°Ý¿¡¼­ ¸â¹ö ÀÚ°ÝÀº Æ÷ÇԵǴ ·Ñ ÀÚ½ÅÀÌ ÁØ °ÍÀ¸·Î¼­ ³ªÅ¸³»Áý´Ï´Ù. )

GRANT¹×REVOKE´Â, ¿µÇâÀ» ÁÖ´Â ¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚ ÀÌ¿ÜÀÇ ·Ñ¿¡ ÀÇÇØ ½ÇÇàÇÒ ¼öµµ ÀÖÁö¸¸, ¿ÀºêÁ§Æ®¸¦ ¼ÒÀ¯ÇÏ´Â ·ÑÀÇ ¸â¹ö³ª ±× ¿ÀºêÁ§Æ®¿¡ ´ëÇØWITH GRANT OPTION±ÇÇÑÀ» °¡Áö´Â ·ÑÀÇ ¸â¹ö°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. ÀÌ °æ¿ì, ±× ±ÇÇÑÀº, ±× ¿ÀºêÁ§Æ®ÀÇ ½ÇÁ¦ÀÇ ¼ÒÀ¯ÀÚ ·Ñ ¶Ç´ÂWITH GRANT OPTION±ÇÇÑÀ» °¡Áö´Â ·Ñ¿¡ ÀÇÇØ ºÎ¿©µÈ °ÍÀ¸·Î¼­ ±â·ÏµË´Ï´Ù. ¿¹¸¦ µé¸é ¸¸¾à t1Å×À̺íÀÌg1·Ñ¿¡ ÀÇÇØ ¼ÒÀ¯µÇ¾îu1°¡g1·ÑÀÇ ¸â¹öÀÌ´Ù°í ÇÕ´Ï´Ù. ÀÌ °æ¿ìu1´Ât1»óÀÇ ±ÇÇÑÀ»u2¿¡ ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ÀÌ·¯ÇÑ ±ÇÇÑÀºg1¿¡ ÀÇÇØ Á÷Á¢ ºÎ¿©µÈ °ÍÀ¸·Î¼­ ³ªÅ¸³³´Ï´Ù. ´ÙÀ½¿¡g1·ÑÀÇ ´Ù¸¥ ¸â¹ö°¡ ÀÌ ±ÇÇÑÀ» Ãë¼ÒÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

GRANT¸¦ ½ÇÇàÇÑ ·ÑÀÌ, ·ÑÀÌ °¡Áö´Â º¹¼ö ¸â¹ö ÀÚ°ÝÀÇ °æ·Î¸¦ ÅëÇØ °£Á¢ÀûÀ¸·Î ÇÊ¿äÇÑ ±ÇÇÑÀ» °¡Áö´Â °æ¿ì, ¾î´À ·ÑÀÌ ±ÇÇÑÀ» ºÎ¿©ÇÑ ·Ñ·Î¼­ ±â·Ï¿¡ ´ëÇØ¼­´Â ÁöÁ¤µÇÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì SET ROLE¸¦ »ç¿ëÇØ GRANT¸¦ ½Ç½ÃÇÏ°Ô ÇÏ°í ½ÍÀº ƯÁ¤ÀÇ ·ÑÀÌ µÇ´Â °ÍÀ» Ãßõ ÇÕ´Ï´Ù.

Å×ÀÌºí¿¡ÀÇ ±ÇÇÑ ºÎ¿©¿¡ ÀÇÇØ,SERIAL¿­¿¡ ÀÇÇØ °ü·ÃÁþ°í µÈ ¼ø¼­¸¦ Æ÷ÇÔÇÑ, ±× Å×À̺í·Î »ç¿ëµÇ´Â ¼ø¼­¿¡ÀÇ ±ÇÇÑÀÇ È®ÀåÀº ÀÚµ¿ÀûÀ¸·Î ÇàÇØÁöÁö ¾Ê½À´Ï´Ù. ¼ø¼­¿¡ÀÇ ±ÇÇÑÀº º°µµ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

Çö½ÃÁ¡¿¡¼­´Â PostgreSQL´Â Å×À̺íÀÇ °³°³ÀÇ ¿­¿¡ ´ëÇØ¼­ ±ÇÇÑÀ» ºÎ¿©Çϰųª Ãë¼ÒÇϰųª ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. À̰ÍÀ» ȸÇÇÇÏ·Á¸é, ´ë»óÀ¸·Î ÇÏ´Â ¿­À» °¡Áö´Â ºä¸¦ ÀÛ¼ºÇØ ±× ºä¿¡ ´ëÇØ¼­ ±ÇÇÑÀ» ºÎ¿©ÇÕ´Ï´Ù.

±âÁ¸ÀÇ ±ÇÇÑ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ¸·Á¸é ÀÌÇÏÀÇ ¿¹¿Í °°ÀÌ psql ÀÇ\z¸í·ÉÀ» »ç¿ëÇØ ÁÖ¼¼¿ä.

=> \z mytable

                        Access privileges for database "lusitania"
 Schema |  Name   | Type  |                     Access privileges
--------+---------+-------+-----------------------------------------------------------
 public | mytable | table | {miriam=arwdxt/miriam,=r/miriam,"group todos=arw/miriam"}
(1 row)

The entries shown by \z are interpreted thus:

              =xxxx -- privileges granted to PUBLIC
         uname=xxxx -- privileges granted to a user
   group gname=xxxx -- privileges granted to a group

                  r -- SELECT(µ¶ÇØ(read))
                  w -- UPDATE(±âÀÔ(write))
                  a -- INSERT (Ãß°¡(append))
                  d -- DELETE
                  x -- REFERENCES
                  t -- TRIGGER
                  X -- EXECUTE
                  U -- USAGE
                  C -- CREATE
                  c -- CONNECT
                  T -- TEMPORARY
             arwdxt -- ¸ðµç ±ÇÇÑ(Å×À̺í¿ë)
                  * -- Á÷ÀüÀÇ ±ÇÇÑ¿¡ °üÇÑ ±×·£Æ® ¿É¼Ç

              /yyyy -- ÀÌ ±ÇÇÑÀ» ºÎ¿©ÇÑ ·Ñ

»ó±âÀÇ ¿¹¿¡¼­´Â mytableÅ×À̺íÀ» ÀÛ¼ºÇØ, ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇÑ ÈÄ¿¡miriam»ç¿ëÀÚ¿¡°Ô Ç¥½ÃµË´Ï´Ù.

GRANT SELECT ON mytable TO PUBLIC;
GRANT SELECT, UPDATE, INSERT ON mytable TO admin;

¾î´À ¿ÀºêÁ§Æ®ÀÇ"¾×¼¼½º±ÇÇÑ"·ÄÀÌ ºó °æ¿ì, ±× ¿ÀºêÁ§Æ®´Â ±âº»ÀÇ ±ÇÇÑÀ» °¡Áö°í ÀÖ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù(Áï ±ÇÇÑ Çʵ尡 NULL). ±âº» ±ÇÇÑÀº Ç×»ó ±× ¼ÒÀ¯ÀÚÀÇ ¸ðµç ±ÇÇÑÀÌ Æ÷ÇԵǾî ÀÖÁö¸¸, ¿ÀºêÁ§Æ®ÀÇ Á¾·ù¿¡ µû¶ó¼­´Â PUBLICÀÇ ±ÇÇÑÀÌ Æ÷ÇԵǾî ÀÖ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. À̰Ϳ¡ ´ëÇØ¼­´Â ÀÌ¹Ì ¼³¸íÇÑ ´ë·ÎÀÔ´Ï´Ù. ¿ÀºêÁ§Æ® ŸÀÔ¿¡ ´ëÇÑ Ã³À½¿¡ GRANT¶Ç´Â REVOKE°¡ ½ÇÇàµÇ¸é ±âº» ±ÇÇÑÀÌ Áõ¸íµÇ°í (¿¹¸¦ µé¸é{miriam=arwdxt/miriam}¿Í °°ÀÌ ÀÛ¼ºµË´Ï´Ù), ÁÖ¾îÁø ¿ä±¸¿¡ ÀÇÇØ À̰͵éÀ» º¯°æÇÕ´Ï´Ù.

¼ÒÀ¯ÀÚ°¡ ¾Ï¹¬Áß¿¡ °¡Áö´Â ±×·£Æ® ¿É¼ÇÀº »ó±âÀÇ ¾×¼¼½º±ÇÇÑÀÇ Ç¥½Ã¿¡ Ãâ·ÂµÇ¾î ÀÖÁö ¾ÊÀº Á¡¿¡ ÁÖ¸ñÇØ ÁÖ¼¼¿ä. *(Àº)´Â ±×·£Æ® ¿É¼ÇÀÌ ¸í½ÃÀûÀ¸·Î ´©±º°¡¿¡°Ô ÁÖ¾îÁ³À» °æ¿ì¿¡°Ô¸¸ Ãâ·ÂµË´Ï´Ù.

¿¹Á¦

filmsÅ×ÀÌºí¿¡ »ðÀÔ ±ÇÇÑÀ» ¸ðµç »ç¿ëÀÚ¿¡°Ô ÁÝ´Ï´Ù.

GRANT INSERT ON films TO PUBLIC;

kindsºä¿¡ À־ÀÇ ÀÌ¿ë °¡´ÉÇÑ ¸ðµç ±ÇÇÑÀ» manuel»ç¿ëÀÚ¿¡°Ô ÁÝ´Ï´Ù.

GRANT ALL PRIVILEGES ON kinds TO manuel;

À§ÀÇ ¸í·ÉÀ» ½´ÆÛ À¯Àú³ªkindsÀÇ ¼ÒÀ¯ÀÚ°¡ ½ÇÇàÇßÀ» °æ¿ì´Â ¸ðµç ±ÇÇÑÀÌ ºÎ¿©µÇÁö¸¸, ´Ù¸¥ »ç¿ëÀÚ°¡ ½ÇÇàÇßÀ» °æ¿ì´Â ±× »ç¿ëÀÚ°¡ ±×·£Æ® ¿É¼ÇÀ» °¡Áö´Â ±ÇÇѸ¸ÀÌ ºÎ¿©µÇ´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.

admins·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀ»joe»ç¿ëÀÚ¿¡°Ô ÁÝ´Ï´Ù.

GRANT admins TO joe;

ȣȯ¼º

Ç¥ÁØ SQL¿¡ µû¶ó ALL PRIVILEGES³»ÀÇPRIVILEGES´Â ÇʼöÀÔ´Ï´Ù. Ç¥ÁØ SQL¿¡¼­´Â 1°³ÀÇ ¸í·É¿¡ ÀÇÇÑ º¹¼ö ¿ÀºêÁ§Æ®¿¡ÀÇ ±ÇÇÑÀÇ ¼³Á¤À» Áö¿øÇϰí ÀÖ½À´Ï´Ù.

PostgreSQL¿¡¼­´Â ¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚ´Â ÀÚ½ÅÀÌ °¡Áö´Â ±ÇÇÑÀ» Ãë¼ÒÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, Å×ÀÌºí ¼ÒÀ¯ÀÚ´Â ÀÚ½ÅÀÇ INSERT, UPDATE, DELETE ±ÇÇÑÀ» Ãë¼ÒÇÏ´Â °ÍÀ¸·Î, Àڽſ¡°Ô ÀÖ¾î ±× Å×À̺íÀ» ÀбâÀü¿ëÀ¸·Î º¯°æÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. À̰ÍÀº, Ç¥ÁØ SQL¿¡¼­´Â ºÒ°¡´ÉÇÕ´Ï´Ù. PostgreSQL¿¡¼­´Â ¼ÒÀ¯ÀÚÀÇ ±ÇÇÑÀ» ¼ÒÀ¯ÀÚ Àڽſ¡ ÀÇÇØ ÁÖ¾îÁø °ÍÀ¸·Î¼­ Ãë±ÞÇϰí Àֱ⠶§¹®¿¡, ¶È°°ÀÌ ¼ÒÀ¯ÀÚ ÀÚ½ÅÀ¸·Î ±ÇÇÑÀ» Ãë¼ÒÇÒ ¼ö°¡ ÀÖ°Ô µÇ¾î ÀÖ½À´Ï´Ù. Ç¥ÁØ SQL¿¡¼­´Â ¼ÒÀ¯ÀÚÀÇ ±ÇÇÑÀº °¡»óÀûÀÎ"_SYSTEM"½Çü¿¡ ÀÇÇØ ÁÖ¾îÁø °ÍÀ¸·Î¼­ Ãë±ÞÇϰí ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡ ¼ÒÀ¯ÀÚ´Â ±× ±ÇÇÑÀ» Ãë¼ÒÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.

Ç¥ÁØSQLÀº ÇÑ Å×À̺íÀÇ °¢°¢ÀÇ ¿­ÀÇ ¼³Á¤ ±ÇÇÑÀ» Çã¶ôÇÕ´Ï´Ù.

GRANT 
privileges

    ON 
table
 [ ( 
column
 [, ...] ) ] [, ...]
    TO { PUBLIC | 
username
 [, ...] } [ WITH GRANT OPTION ]

Ç¥ÁØ SQL¿¡¼­´Â ij¸¯ÅÍ ¼¼Æ®, ÁýÇÕ, ¹ø¿ª, µµ¸ÞÀÎÀ̶ó°í ÇÏ´Â ±× ¿ÜÀÇ Á¾·ùÀÇ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼­ USAGE±ÇÇÑÀ» ºÎ¿©ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

µ¥ÀÌÅͺ£À̽º, Å×ÀÌºí °ø°£, schema, ¾ð¾î¿¡ ´ëÇÑ ±ÇÇÑÀºPostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ

REVOKE