18.4. ·ÑÀÇ ¸â¹ö ÀÚ°Ý

±ÇÇÑÀÇ °ü¸®¸¦ °£´ÜÇÏ°Ô Çϱâ À§Çؼ­, »ç¿ëÀÚ¸¦ ±×·ì¿¡ Á¤¸®ÇÏ´Â °ÍÀº ÀÚÁÖ Æí¸®ÇÕ´Ï´Ù. ±×·ì Àüü¿¡ ´ëÇØ¼­ ±ÇÇÑÀ» ¼ö¿©ÇÏ´Â Àϵµ, Ãë¼ÒÇÒ ¼öµµ ÀÖ½À´Ï´Ù. PostgreSQL¿¡¼­´Â, ±×·ìÀ» ³ªÅ¸³»´Â ·ÑÀ» ÀÛ¼ºÇÏ´Â °ÍÀ¸·Î ÇàÇØÁý´Ï´Ù. ±×¸®°í, ±× ±×·ì ·Ñ¿¡ °³°³ÀÇ »ç¿ëÀÚ ·ÑÀǸâ¹ö ÀÚ°ÝÀ» ÁÝ´Ï´Ù.

±×·ì ·ÑÀ» ¼³Á¤ÇÏ·Á¸é , ¿ì¼± ·ÑÀ» ÀÛ¼ºÇÕ´Ï´Ù.

CREATE ROLE 
name
;

Åë»óÀûÀ¸·Î, ±×·ìÀ¸·Î¼­ »ç¿ëµÇ´Â ·Ñ¿¡´ÂLOGIN¼Ó¼ºÀ» °®°ÔÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, ¿øÇÑ´Ù¸é °®°ÔÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

±×·ì ·ÑÀ» ÀÏ´Ü ÀÛ¼ºÇϸé, GRANT ¹× REVOKE ¸í·ÉÀ» »ç¿ëÇØ ¸â¹öÀÇ Ãß°¡¿Í »èÁ¦¸¦ ½Ç½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

GRANT 
group_role
 TO 
role1
, ... ;
REVOKE 
group_role
 FROM 
role1
, ... ;

´Ù¸¥ ±×·ì ·Ñ¿¡ÀÇ ¸â¹ö ÀÚ°ÝÀ» ÁÙ ¼öµµ ÀÖ½À´Ï´Ù. (±×·ì ·Ñ°ú ºñ±×·ì ·Ñ°úÀÇ »çÀÌ¿¡´Â ½ÇÁ¦·Î´Â ±¸º°ÀÌ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. ) µ¥ÀÌÅͺ£À̽º´Â ±×·ìÀÇ ¸â¹ö ÀÚ°ÝÀ» ·çÇÁ ½ÃŰÁö ¾Ê½À´Ï´Ù. ¶Ç, ·Ñ³»ÀÇ ¸â¹ö ÀÚ°ÝÀ»PUBLIC¿¡ ºÎ¿©ÇÒ ¼ö ¾ø½À´Ï´Ù.

·ÑÀÇ ¸â¹ö´Â, 2°³ÀÇ ¹æ¹ýÀ¸·Î ±×·ì ·ÑÀÇ ±ÇÇÑÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿ì¼±, ±×·ì³»ÀÇ ¸ðµç ¸â¹ö´Â ¸í½ÃÀûÀ¸·Î, ÀϽÃÀûÀ¸·Î ±× ±×·ì ·ÑÀÌ"µÇ±â"¶§¹®¿¡ SET ROLE ¸¦ ½Ç½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ »óÅ¿¡¼­´Â, µ¥ÀÌÅͺ£À̽º ¼¼¼ÇÀº ¿ø·¡ÀÇ ·Î±×ÀÎ ·ÑÀÇ ±ÇÇÑÀº ¾Æ´Ï°í ±×·ìÀÇ ±ÇÇÑÀ¸·Î Á¢±ÙµË´Ï´Ù. ±×¸®°í, ÀÛ¼ºµÈ µ¥ÀÌÅͺ£À̽º °´Ã¼ÀÇ ¼ÒÀ¯ÀÚ´Â ·Î±×ÀÎ ·ÑÀº ¾Æ´Ï°í ±×·ì ·ÑÀÌ´Ù°í º¸ÀÔ´Ï´Ù. 2¹øÂ°´Â,INHERIT¼Ó¼ºÀ» °¡Áö´Â ¸â¹ö ·ÑÀº, ÀÚµ¿ÀûÀ¸·Î ¸â¹ö ÀÚ°ÝÀ» °¡Áö´Â ·Ñ±ºÀÇ ±ÇÇÑÀ» »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ °¡Á¤Çß½À´Ï´Ù.

CREATE ROLE joe LOGIN INHERIT;
CREATE ROLE admin NOINHERIT;
CREATE ROLE wheel NOINHERIT;
GRANT admin TO joe;
GRANT wheel TO admin;

joe·Ñ·Î Á¢¼ÓÇÏÀÚ¸¶ÀÚ,joe´Âadmin±ÇÇÑÀ»"°è½Â"Çϱ⠶§¹®¿¡, ±× µ¥ÀÌÅͺ£À̽º ¼¼¼Ç¿¡¼­´Âjoe¿¡ Á÷Á¢ ÁÖ¾îÁø ±ÇÇÑ¿¡ ´õÇØ,admin¿¡°Ô ÁÙ ¼ö ÀÖ¾ú´ø ±ÇÇÑÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯³ª,wheel¿¡°Ô ÁÙ ¼ö ÀÖ¾ú´ø ±ÇÇÑÀº ÀÌ¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. joe´Â °£Á¢ÀûÀ¸·ÎwheelÀÇ ¸â¹öÀÔ´Ï´Ù¸¸,admin°æÀ¯ÀÇ ¸â¹ö ÀÚ°ÝÀºNOINHERIT¼Ó¼ºÀ» °¡Áö°í Àֱ⠶§¹®ÀÔ´Ï´Ù.

SET ROLE admin;

¼¼¼ÇÀºadmin¿¡°Ô ÁÙ ¼ö ÀÖ¾ú´ø ±ÇÇѸ¸À» »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. joe¿¡°Ô ÁÙ ¼ö ÀÖ¾ú´ø ±ÇÇÑÀº »ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.

SET ROLE wheel;

¼¼¼ÇÀºwheel¿¡°Ô ÁÙ ¼ö ÀÖ¾ú´ø ±ÇÇѸ¸À» »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾î,joe³ªadmin¿¡°Ô ÁÙ ¼ö ÀÖ¾ú´ø ±ÇÇÑÀº »ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. ¿ø·¡ »óÅÂÀÇ ±ÇÇÑÀ¸·Î µÇµ¹¸®·Á¸é , ÀÌÇÏÀÇ ¾î´À °ÍÀ» ½Ç½ÃÇÏ¿© µÇµ¹¸± ¼ö ÀÖ½À´Ï´Ù.

SET ROLE joe;
SET ROLE NONE;
RESET ROLE;

Note: SET ROLE¸í·ÉÀº ¾ðÁ¦¶óµµ, ¿ø·¡ÀÇ ·Î±×ÀÎ ·ÑÀÌ Á÷Á¢ ȤÀº °£Á¢ÀûÀ¸·Î ¸â¹ö ÀÚ°ÝÀ» °¡Áö´Â ¸ðµç ·ÑÀ» ¼±ÅÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. µû¶ó¼­, À§ÀÇ ¿¹¿¡ ´ëÇØ,wheel°¡ µÇ±â Àü¿¡admin°¡ µÇ´Â °ÍÀº ÇÊ¿ä ¾ø½À´Ï´Ù.

Note: SQL Ç¥ÁØ¿¡¼­´Â, »ç¿ëÀÚ¿Í ·Ñ°úÀÇ »çÀÌ¿¡ ¸íÈ®ÇÑ Â÷À̰¡ ÀÖ¾î, »ç¿ëÀÚ´Â ·Ñ°ú °°ÀÌ ÀÚµ¿ÀûÀ¸·Î ±ÇÇÑÀ» °è½ÂÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. PostgreSQL·Î ÀÌ ÇൿÀ» ½ÇÇöÇÏ·Á¸é, SQL ·Ñ·Î¼­ »ç¿ëÇÏ´Â ·Ñ¿¡´ÂINHERIT¼Ó¼ºÀ» ºÎ¿©ÇØ, SQL »ç¿ëÀڷμ­ »ç¿ëÇÏ´Â ·Ñ¿¡´ÂNOINHERIT¼Ó¼ºÀ» ºÎ¿©ÇÕ´Ï´Ù. ±×·¯³ª, 8.1 ¹öÁ¯º¸´Ù Àü¹öÁ¯°úÀÇ È£È¯¼ºÀ» º¸°ü À¯ÁöÇϱâ À§Çؼ­,PostgreSQL´Â ±âº»°ªÀ¸·Î, ¸ðµç ·Ñ¿¡INHERIT¼Ó¼ºÀ» ºÎ¿©ÇÕ´Ï´Ù. ÀÌÀü¿¡´Â, »ç¿ëÀÚ´Â Ç×»ó ¸â¹ö·Î¼­ ¼ÓÇÏ´Â ±×·ì¿¡ ºÎ¿©µÈ ±ÇÇÑÀ» Ç×»ó »ç¿ëÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù.

LOGIN,SUPERUSER,CREATEDB, CREATEROLE·Ñ ¼Ó¼ºÀº, Ưº°ÇÑ ±ÇÇÑÀ¸·Î °£ÁÖÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù¸¸, µ¥ÀÌÅͺ£À̽º °´Ã¼¿¡ ´ëÇÑ Åë»óÀÇ ±ÇÇѰú °°ÀÌ °è½ÂµÇÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ ¼Ó¼ºÀÇ Çϳª¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ­´Â, ±× ¼Ó¼ºÀ» ƯÁ¤ÀÇ ·Ñ·Î ¼³Á¤Çϵµ·Ï ½ÇÁ¦·Î SET ROLE¸¦ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹¸¦ °è¼ÓÇϸé,admin·Ñ¿¡CREATEDB±ÇÇѰúCREATEROLE ±ÇÇÑÀ» ºÎ¿©ÇÏ´Â °ÍÀ» ¼±ÅÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô Çϸé,joe·Ñ·Î¼­ Á¢¼ÓÇÏ´Â ¼¼¼Ç¿¡¼­´Â ÀÌ·¯ÇÑ ±ÇÇÑÀº ¾ø½À´Ï´Ù. SET ROLE admin¸¦ ½Ç½ÃÇÑ ´ÙÀ½¿¡, ÀÌ ±ÇÇÑÀ» °¡Áý´Ï´Ù.

±×·ì ·ÑÀ» »èÁ¦ÇÏ·Á¸é, DROP ROLE ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.

DROP ROLE 
name
;

±×·ì ·Ñ³»ÀÇ ¸â¹ö Àڰݵµ ÀÚµ¿ÀûÀ¸·Î ´Ù·ç¾îÁý´Ï´Ù. (±×·¯³ª, ¸â¹ö ·Ñ¿¡´Â ¾Æ¹« ¿µÇâµµ ¾ø½À´Ï´Ù. ) ±×·¯³ª, ¸ÕÀú ±×·ì ·ÑÀÌ ¼ÒÀ¯ÇÏ´Â °´Ã¼¸¦ ¸ðµÎ »èÁ¦µÇ°Å³ª ¼ÒÀ¯ÀÚ¸¦ º¯°æÇØ µÑ Çʿ䰡 ÀÖ¾î, ¶Ç, ±×·ì¿¡ ºÎ¿©µÈ ±ÇÇѵµ ¸ðµÎ ´Ù·ç¾îÁö´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.