SET SESSION AUTHORIZATION

Name

SET SESSION AUTHORIZATION -- ¼¼¼ÇÀÇ »ç¿ëÀÚ ½Äº°ÀÚ, ÇöÀçÀÇ ¼¼¼ÇÀÇ ÇöÀçÀÇ »ç¿ëÀÚ ½Äº°ÀÚ¸¦ ¼³Á¤ÇÑ´Ù

Synopsis

SET [ SESSION | LOCAL ] SESSION AUTHORIZATION 
username

SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
RESET SESSION AUTHORIZATION

¼³¸í

ÀÌ ¸í·ÉÀº ¼¼¼ÇÀÇ »ç¿ëÀÚ ½Äº°ÀÚ ¹×, ÇöÀçÀÇ SQL ¼¼¼Ç¿¡ À־ÀÇ ÇöÀçÀÇ »ç¿ëÀÚ ½Äº°ÀÚ¸¦username·Î ¼³Á¤ÇÕ´Ï´Ù. »ç¿ëÀÚ¸íÀº ½Äº°ÀÚ »Ó¸¸ÀÌ ¾Æ´Ï¶ó ½ºÆ®¸µ ¸®ÅÍ·²(string literal)·Î¼­ ±â¼úÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ¸í·ÉÀ» »ç¿ëÇÏ¸é ¿¹¸¦ µé¸é, ÀϽÃÀûÀ¸·Î ºñƯ±Ç »ç¿ëÀÚ°¡ µÇ¾î, ±× ÈÄ¿¡ ½´ÆÛ À¯Àú¿¡°Ô µ¹¾Æ¿À´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.

¼¼¼ÇÀÇ »ç¿ëÀÚ ½Äº°Àڴ Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ °Ç³×¹Þ´Â(°¡´ÉÇÑ ÀÎÁõ) »ç¿ëÀÚ¸íÀ¸·Î ÃʱâÈ­µË´Ï´Ù. ÇöÀçÀÇ »ç¿ëÀÚ ½Äº°ÀÚ´Â Åë»ó ¼¼¼ÇÀÇ »ç¿ëÀÚ ½Äº°ÀÚ¿Í µ¿ÀÏÇÕ´Ï´Ù¸¸, SECURITY DEFINERÇÔ¼ö³ª À¯»çÇÑ ±â´É¿¡ ÀÇÇØ ÀϽÃÀûÀ¸·Î º¯°æµÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. SET ROLE ±×¸®°í À̰ÍÀ» º¯°æÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇöÀçÀÇ »ç¿ëÀÚ ½Äº°ÀÚ´Â ±ÇÇÑÀÇ °Ë»ç¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.

¼¼¼ÇÀÇ »ç¿ëÀÚ ½Äº°ÀÚ´Â ÃÖÃÊÀÇ ¼¼¼Ç »ç¿ëÀÚ(ÀÎÁõµÈ »ç¿ëÀÚ)°¡ ½´ÆÛ À¯Àú ±ÇÇÑÀ» °¡Áö°í ÀÖ´Â °æ¿ì¿¡°Ô¸¸ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ¿Í ´Þ¸® ÀÎÁõµÈ »ç¿ëÀÚ¸íÀ» ÁöÁ¤ÇÑ´Ù¸é ÀÌ ¸í·ÉÀº ¹Þ¾Æµé¿©Áý´Ï´Ù.

SESSION¼ö½ÄÀÚ ¹×LOCAL¼ö½ÄÀÚ´Â Åë»óÀÇ SET ¸í·ÉÀÇ °æ¿ì¿Í °°ÀÌ ±â´ÉÇÕ´Ï´Ù.

DEFAULT±¸¹® ¹×RESET±¸¹®Àº ¼¼¼Ç¸¦ ¸®¼ÂÇÏ°í ±×¸®°í ÇöÀç »ç¿ëÀÚÀÇ ½Äº°ÀÚ¸¦ ¿ø·¡ÀÇ ÀÎÁõ »ç¿ëÀÚ°¡ µÇµµ·Ï ¸®¼ÂÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ±¸¹®Àº ¸ðµç »ç¿ëÀÚ°¡ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÁÖ¼®

SET SESSION AUTHORIZATION cannot be used within a SECURITY DEFINER function. --> SET SESSION AUTHORIZATION¸¦ SECURITY DEFINERÇÔ¼ö·Î »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

¿¹Á¦

SELECT SESSION_USER, CURRENT_USER;

 session_user | current_user 
--------------+--------------
 peter        | peter

SET SESSION AUTHORIZATION 'paul';

SELECT SESSION_USER, CURRENT_USER;

 session_user | current_user 
--------------+--------------
 paul         | paul

ȣȯ¼º

Ç¥ÁØ SQL¿¡¼­´Â username ¸®ÅÍ·²ÀÇ ÁöÁ¤ ¹æ¹ýÀ¸·Î¼­ ±× ¿ÜÀÇ Ç¥ÇöÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÌ Â÷ÀÌ´Â ½ÇÁ¦·Î´Â Áß¿äÇÏÁö´Â ¾Ê½À´Ï´Ù. PostgreSQL¿¡¼­´Â ½Äº°ÀÚ ±¸¹®("username")À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, SQL¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. SQL¿¡¼­´Â ÀÌ ¸í·ÉÀ» Æ®·£Àè¼Ç(transaction)Áß¿¡ ½ÇÇàÇÒ ¼ö°¡ ¾ø½À´Ï´Ù¸¸, PostgreSQL¿¡¼­´Â ±ÝÁöÇÏ´Â ÀÌÀ¯°¡ ´«¿¡ ¶çÁö ¾Ê±â ¶§¹®¿¡, ÀÌ Á¦ÇÑÀ» ºÙÀ̰í ÀÖÁö ¾Ê½À´Ï´Ù. SESSION¼ö½ÄÀÚ ¹×LOCAL¼ö½ÄÀÚ´ÂRESET±¸¹® °°ÀÌ,PostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù.

ÀÌ ¸í·ÉÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ±ÇÇÑÀº Ç¥ÁØ¿¡ ÀÇÇØ¼­ ±¸Çö Á¤ÀÇµÈ °Í¿¡ ³²¾ÆÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ

SET ROLE