°´Ã¼ ±ÇÇÑ ºÎ¿©(GRANT)
¡¼¿¹Á¦¡½
SQL> connect system/manager as sysdba
SQL> create user kim identified by gun;
SQL> grant connect,resource to kim;
SQL> create user kim2 identified by gun2;
SQL> grant connect,resource to kim2;
SQL> conn kim/gun
SQL> create table aa(pno number(3),pname varchar2(10));
SQL> insert into aa values(111,'COREA');
SQL> insert into aa values(222,'CHINA');
SQL> select * from aa;
PNO PNAME
---------- ----------
111 COREA
222 CHINA
SQL> select * from user_tab_privs;
no rows selected
SQL> select * from user_tab_privs_recd;
no rows selected
SQL> grant select ON aa TO kim2; ¢Ð aa °´Ã¼¿¡ ´ëÇÑ ±ÇÇÑÀ» kim2¿¡°Ô ºÎ¿©ÇÔ
Grant succeeded.
SQL> conn kim2/gun2;
SQL> select * from user_tab_privs; ¢Ð »ç¿ëÀÚ¿¡°Ô ÁÖ¾îÁø °´Ã¼±ÇÇÑ Á¶È¸
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------- ------- ----------- -------- ----------- --- ---
KIM2 KIM AA KIM SELECT NO NO
SQL> select * from user_tab_privs_recd; ¢Ð ºÎ¿©¹ÞÀº °´Ã¼ ±ÇÇÑ Á¤º¸¸¦ Á¶È¸
OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ------------ --------- ----------- --- ---
KIM AA KIM SELECT NO NO
SQL> select * from kim.aa; ¢Ð kim.aa °´Ã¼¸¦ kim2°¡ Á¶È¸ÇÒ ¼ö ÀÖÀ½
PNO PNAME
---------- ----------
111 COREA
222 CHINA
SQL> conn kim/gun
Connected.
SQL>
SQL> grant insert(pno,pname),select ON aa
2 TO kim2; ¢Ð kim.aa°´Ã¼¿¡ kim2»ç¿ëÀÚ¿¡°Ô insert¿Í select ±ÇÇÑÀ» ºÎ¿©ÇÔ
Grant succeeded.
SQL> conn kim2/gun2
Connected.
SQL> select * from kim.aa;
PNO PNAME
---------- ----------
111 COREA
222 CHINA
SQL> insert into kim.aa values(333,'JAPAN'); ¢Ð kim2°¡ kim.aa °´Ã¼¿¡ insert¸¦ ½ÇÇàÇÔ
1 row created.
SQL> select * from kim.aa;
PNO PNAME
---------- ----------
111 COREA
222 CHINA
333 JAPAN
SQL> conn kim/gun
Connected.
SQL> select * from aa;
PNO PNAME
---------- ----------
111 COREA
222 CHINA
333 JAPAN
SQL> conn kim2/gun2;
Connected.
SQL> select * from user_tab_privs;
GRANTEE OWNER TABLE GRANT PRIVILEGE GRA HIE
-------- ----- ----- ----- ---------- --- ---
KIM2 KIM AA KIM SELECT NO NO
SQL> select * from user_tab_privs_recd;
OWNER TABLE GRANT PRIVILEGE GRA HIE
----- ----- ----- ---------- --- ---
KIM AA KIM SELECT NO NO
SQL>
¡¼¿¹Á¦¡½
SQL> conn kim/gun
Connected.
SQL> select * from user_tab_privs; ¢Ð kim»ç¿ëÀÚ°¡ ºÎ¿©ÇÑ °´Ã¼ ³»¿ëÀ» È®ÀÎÇÔ
GRANTEE OWNER TABLE GRANT PRIVILEGE GRA HIE
-------- ----- ----- ----- ---------- --- ---
KIM2 KIM AA KIM SELECT NO NO
SQL> select * from user_tab_privs_recd; ¢Ð kimÀÌ ¹ÞÀº °´Ã¼¸¦ È®ÀÎÇÔ
no rows selected
SQL> REVOKE select ON aa
2 FROM kim2; ¢Ð kim2¿¡°Ô ºÎ¿©µÈ aa°´Ã¼ÀÇ select ±ÇÇÑÀ» ȸ¼öÇÔ
Revoke succeeded.
SQL> select * from user_tab_privs; ¢Ð kimÀÌ ¾î¶² °´Ã¼µµ ±ÇÇѺο©ÇÑ °ÍÀÌ ¾øÀ½(¾ÆÁ÷µµ insert(pno,pname) °´Ã¼ ±ÇÇÑÀº ³²¾Æ ÀÖÀ½)
no rows selected
SQL> conn kim2/gun2
Connected.
SQL> insert into kim.aa values(444,'Honkong'); ¢Ð kimÀÌ kim2¿¡°Ô aa°´Ã¼¿¡ insert±ÇÇÑÀº ºÎ¿©µÇ¾î ÀÖÀ½
1 row created.
SQL> select * from kim.aa; ¢Ð kimÀÌ kim2·ÎºÎÅÍ aa°´Ã¼ÀÇ select ±ÇÇÑÀÌ È¸¼öµÈ »óÅÂÀÓ
select * from kim.aa
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> conn kim/gun
Connected.
SQL> select * from aa; ¢Ð kim2°¡ kimÀÇ aa°´Ã¼¿¡ insert °´Ã¼ ±ÇÇÑÀÌ ºÎ¿©µÈ »óÅÂÀÓÀ» ¾Ë ¼ö ÀÖÀ½
PNO PNAME
---------- ----------
111 COREA
222 CHINA
333 JAPAN
444 Honkong
SQL> select * from user_col_privs; ¢Ð °´Ã¼ÀÇ Ä÷³ ±ÇÇÑÀ» È®ÀÎÇÔ
GRANTEE OWNER TABLE COLUMN_NAME GRANT PRIVILEGE GRA
-------- ----- ----- ------------------------------ ----- ---------- ---
KIM2 KIM AA PNAME KIM INSERT NO
KIM2 KIM AA PNO KIM INSERT NO
SQL> conn kim2/gun2
Connected.
SQL> select * from user_col_privs;
GRANTEE OWNER TABLE COLUMN_NAME GRANT PRIVILEGE GRA
-------- ----- ----- ------------------------------ ----- ---------- ---
KIM2 KIM AA PNAME KIM INSERT NO
KIM2 KIM AA PNO KIM INSERT NO
SQL>
µ¥ÀÌÅͺ£À̽º ³»ÀÇ ¸ðµç °³Ã¼ ±ÇÇÑÀ» º¸¿©ÁÖ´Â DBA_TAB_PRIVS¿Í
Ä÷³¿¡ ÁöÁ¤µÈ ¸ðµç °³Ã¼ ±ÇÇÑÀº DBA_COL_PRIVS¿¡ Ç¥½ÃµÈ´Ù.
¸ðµç »ç¿ëÀÚ¸¦ À§ÇÑ °³Ã¼ ±ÇÇÑ ºä
| data dictionary view | ¼³¸í |
| ALL_TAB_PRIVS | »ç¿ëÀÚ ¶Ç´Â publicÀ¸·Î ºÎ¿©µÈ °³Ã¼ ±ÇÇÑ ºä |
| ALL_TAB_PRIVS_MADE | °¢ »ç¿ëÀÚ ±ÇÇѰú »ç¿ëÀÚ ¼ÒÀ¯ÀÇ °³Ã¼ ±ÇÇÑ ºä |
| ALL_TAB_PRIVS_RECD | »ç¿ëÀÚ ¶Ç´Â publicÀ¸·Î ÁÖ¾îÁø °³Ã¼¿¡ ´ëÇÑ °³Ã¼ ±ÇÇÑ ºä |
| TABLE_PRIVILEGES | °³Ã¼ ±ÇÇÑ ¼ÒÀ¯ÀÚ, ºÎ¿©ÀÚ, ÇǺο©ÀÚÀ̰ųª publicÀ¸·Î ºÎ¿©µÈ °³Ã¼ ±ÇÇÑ ºä |
| ALL_COL_PRIVS | »ç¿ëÀÚ ¶Ç´Â publicÀ¸·Î ºÎ¿©µÈ Ä÷³ °³Ã¼ ±ÇÇÑ ºä |
| ALL_COL_PRIVS_MADE | °¢ »ç¿ëÀÚ ±ÇÇѰú »ç¿ëÀÚ ¼ÒÀ¯ÀÇ Ä÷³ °³Ã¼ ±ÇÇÑ ºä |
| ALL_COL_PRIVS_RECD | »ç¿ëÀÚ ¶Ç´Â publicÀ¸·Î ÁÖ¾îÁø °³Ã¼¿¡ ´ëÇÑ Ä÷³ °³Ã¼ ±ÇÇÑ ºä |
| COLUMN_PRIVILEGES | °³Ã¼ ±ÇÇÑ ¼ÒÀ¯ÀÚ, ºÎ¿©ÀÚ, ÇǺο©ÀÚÀ̰ųª publicÀ¸·Î ºÎ¿©µÈ Ä÷³ °³Ã¼ ±ÇÇÑ ºä |
| |
ÀÏ¹Ý »ç¿ëÀÚ °³Ã¼ ±ÇÇÑ ºä
| data dictionary view | ¼³¸í |
| USER_TAB_PRIVS | °³Ã¼ ±ÇÇÑ ¼ÒÀ¯ÀÚ, ºÎ¿©ÀÚ, ÇǺο©ÀÚÀÇ °³Ã¼ ±ÇÇÑ ºä |
| USER_TAB_PRIVS_MADE | »ç¿ëÀÚ°¡ ¼ÒÀ¯ÀÚÀÎ °³Ã¼ ±ÇÇÑ ºä |
| USER_TAB_PRIVS_RECD | °³Ã¼ ±ÇÇÑ ÇǺο©ÀÚ¸¦ À§ÇÑ ºä |
| USER_COL_PRIVS | °³Ã¼ ±ÇÇÑ ¼ÒÀ¯ÀÚ, ºÎ¿©ÀÚ,ÇǺο©ÀÚÀÇ Ä÷³¿¡ ±ÇÇÑ ºä |
| USER_COL_PRIVS_MADE | »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ Ä÷³¿¡ ±ÇÇÑ ºä |
| USER_COL_PRIVS_RECD | °³Ã¼ ±ÇÇÑ ÇǺο©ÀÚ¸¦ À§ÇÑ Ä÷³ÀÇ ºä |