ºìÁªLinuxÃÅ»§
Linux°ïÖú

½«Oracle 10gÄÚÖõݲȫÌØÐÔÓÃÓÚPHP

·¢²¼Ê±¼ä:2006-08-27 09:23:27À´Ô´:ºìÁª×÷Õß:romeobh
¡¡¡¡µ±½ñ´ó¶àÊý Web Ó¦ÓóÌÐò¶¼ÐèÒªÖÁÉÙ²ÉÓÃijÖÖ»ù±¾µÄ°²È«²ßÂÔ¡£ÀýÈ磬ÌṩÓÿÚÁî±£»¤µÄÄÚÈݵÄÍøÕ¾¡¢½ö¾ßÓйÜÀíÔ±ºó¶ËµÄÍøÕ¾¡¢ÍøÖ¾ºÍ¸öÈËÔÓÖ¾¡¢µç×ÓÉÌÎñÍøÕ¾¡¢ÆóÒµÄÚÁªÍø£¬µÈµÈ¡£

¡¡¡¡¹¹½¨ÕâЩÀàÐ굀 Web Ó¦ÓóÌÐò×î³£ÓõÄÉè¼Æ·½·¨Êǽ«°²È«²ßÂÔÕûºÏµ½ Web Ó¦ÓóÌÐòµÄÒµÎñÂß¼­ÖУ¬¼´ÓÉÓ¦ÓóÌÐò¾ö¶¨Ä³¸öÓû§ÊÇ·ñÓÐȨ·ÃÎÊÊý¾Ý¿âÖеÄij¸öÊý¾Ý¡£ÔÚÕâÖÖÇéÐÎÏ£¬Êý¾Ý¿âµÄ½ÇÉ«½öΪ´æ´¢Êý¾ÝºÍÒÀÇëÇóÌṩÊý¾Ý¡£»»¾ä»°Ëµ£¬Èç¹û Web Ó¦ÓóÌÐòÃüÁîÊý¾Ý¿âÌṩÌض¨ÐÅÏ¢£¬ÔòÊý¾Ý¿â»áÖ±½ÓÖ´ÐиÃÃüÁî¶ø²»¼ì²éÓû§µÄȨÏÞ¡£

¡¡¡¡ÔÚ¸ÃÎÄÖУ¬Äú½«Ñ§Ï°ÈçºÎÀûÓà Oracle ÄÚÖõݲȫÌØÐÔÔÚÊý¾Ý¿â¼¶Ö´ÐÐÓ¦ÓóÌÐò°²È«¹æÔò£¬ÒÔÌá¸ßÓ¦ÓóÌÐòµÄÕûÌ尲ȫÐÔ¡£×÷Ϊ¸½´øµÄºÃ´¦£¬Ö±½ÓÔÚÊý¾Ý¿âÖÐʵÏÖÊý¾Ý·ÃÎÊ°²È«²»µ«ÓÐÖúÓÚÌá¸ßÓ¦Óó̵ݲȫÐÔ£¬¶øÇÒÓÐÖúÓÚ½µµÍ¸´ÔÓÐÔ¡£

¡¡¡¡¶ÔÊý¾Ý¿â¶Ë°²È«ÐÔµÄÐèÇó

¡¡¡¡´Ó Web Ó¦ÓóÌÐò¿ØÖÆÊý¾Ý·ÃÎÊ»áÔõôÑù£¿´ó¶àÊýÇé¿öÏÂûÓÐÎÊÌ⣻ÕâÊǸö²»´íµÄ½â¾ö·½°¸£¬ÓÈÆäÊÇÔÚÉæ¼°µÄÊý¾ÝΪ·ÇÈÎÎñ¹Ø¼ü»ò¾øÃܵÄʱºò¡£Ðí¶àÊéºÍÔÚÏß×ÊÔ´Öж¼Óõ½Á˸÷½·¨¡£Êµ¼ÊÉÏ£¬Óб¾ºÜÊÜ»¶Ó­µÄ PHP/MySQL ÊéÃ÷È··´¶Ôÿ¸öÓ¦ÓóÌÐò´´½¨Ò»¸öÒÔÉϵÄÊý¾Ý¿âÓû§ÕÊ»§£¬ÕâÊÇÒòΪ¡°¶îÍâµÄÓû§»ò¸´ÔÓµÄȨÏÞ»áÒòij¸ö²Ù×÷ÔÚ¼ÌÐøÇ°Òª¼ì²é¸ü¶àµÄÐÅÏ¢¶ø½µµÍ MySQL µÄÖ´ÐÐËٶȡ±¡£È·ÊµÈç´Ë£»µ«ÊÇ£¬ÔÚ·ÅÆú½«°²È«ÐÔÕûºÏµ½Êý¾Ý¿âÂß¼­ÖеÄÏ뷨ǰ¿ÉÄÜÒª¿¼ÂǼ¸¼þÊÂÇé¡£ÎÒÃÇÀ´¿´ÒÔÏÂʾÀý¡£

¡¡¡¡¼ÙÉè´´½¨Ò»¸öÄÚÈݹÜÀíϵͳ (CMS)¡£ÆäÖÐʹÓÃÊý¾Ý¿âÀ´´æ´¢ÍøÕ¾ÉÏ·¢²¼µÄÄÚÈÝ¡£´ó²¿·ÖÊý¾ÝÊǹ«¿ªµÄ£¬ÔÊÐíÄäÃû Web Óû§¶ÁÈ¡£»µ«Ö»ÔÊÐí±à¼­¸ü¸ÄÊý¾Ý¡£Ê¹Óõ¥Ò»Êý¾Ý¿âÕÊ»§·ÃÎʺÍÐÞ¸ÄÊý¾Ý¿âÖеļǼ£¬²¢Í¨¹ýÓÿÚÁî±£»¤½ö¹ÜÀíÔ±¿ÉÒÔ·ÃÎʵÄÒ³ÃæµÄ·ÃÎÊȨÏÞÓà PHP ´úÂë¿ØÖÆ°²È«ÐÔ¡£

¡¡¡¡Èç¹û Web Ó¦ÓóÌÐòµÄ¹«¹²¶ËÔâÊÜÁËÒ»¸öÖîÈ繫¹²ËÑË÷±íµ¥£¨¼´±àÂë²»¹»ÑÏÃÜµÄ±íµ¥£©É쵀 SQL ×¢ÈëµÄ¹¥»÷£¬Ôò¸ÃÈëÇÖÕß¿ÉÄÜÄܹ»¶Ô¸Ã¹«¹²ÕÊ»§¿ÉÒÔ·ÃÎʵÄÊý¾Ý¿â¶ÔÏóÖ´ÐÐÈÎÒâ SQL Óï¾ä¡£µ±È»£¬¾ÍÕâÀïµÄÇéÐζøÑÔ£¬Ö´ÐÐ SELECT Óï¾ä²»»áÔì³Éʲô´óÎÊÌ⣬ÕâÊÇÒòΪÊý¾Ý±¾À´¾ÍÊǹ«¹²µÄ¡£µ«ÓÉÓÚ¹«¹²È¨Ï޺͹ÜÀíȨÏÞʹÓÃͬһÊý¾Ý¿âÕÊ»§£¬Òò´ËÈëÇÖÕß»¹ÄÜÖ´ÐÐ UPDATE ºÍ DELETE Óï¾ä£¬ÉõÖÁÊÇ´ÓÊý¾Ý¿âÖÐɾ³ý±í¡£

¡¡¡¡Ôõô²ÅÄÜ·ÀÖ¹¸ÃÇé¿öµÄ·¢ÉúÄØ£¿×î¼òµ¥µÄ·½·¨¾ÍÊdz¹µ×ÏÞÖƹ«¹²Êý¾Ý¿âÕÊ»§ÐÞ¸ÄÊý¾ÝµÄȨÏÞ¡£ÎÒÃÇÀ´¿´¿´ Oracle ÊÇÈçºÎ½â¾öÕâ¸öÎÊÌâµÄ¡£

¡¡¡¡Oracle °²È«ÐÔ»ù±¾¸ÅÊö

¡¡¡¡Oracle Êý¾Ý¿âΪ Web ¿ª·¢ÈËÔ±ÌṩÁË¿ØÖÆÊý¾Ý·ÃÎʵÄÐí¶à·½·¨£¬´Ó¹ÜÀí¶ÔÌض¨Êý¾Ý¿â¶ÔÏó£¨Èç±í¡¢ÊÓͼºÍ¹ý³Ì£©µÄ·ÃÎʵ½¿ØÖƸö±ðÐлòÁеÄÊý¾ÝµÄ·ÃÎÊ¡£ºÜÏÔÈ»£¬¶Ô Oracle ÿ¸ö°²È«ÌØÐÔ»ò¿ÉÓÃÑ¡ÏîµÄÌÖÂÛ³¬³öÁ˱¾Îĵķ¶Î§¡£ÔÚÕâÀÎÒÃǽ«²»Éæ¼°¹ý¶àϸ½Ú£¬¶ø½ö½éÉÜ Oracle Êý¾Ý·ÃÎÊ°²È«ÐÔµÄ×î»ù±¾·½Ã棺

¡¡¡¡?ÑéÖ¤ºÍÓû§ÕÊ»§
¡¡¡¡?ȨÏÞ
¡¡¡¡?½ÇÉ«

¡¡¡¡ÑéÖ¤ºÍÓû§ÕÊ»§¡£ ÓëÆäËûÊý¾Ý¿âÒ»Ñù£¬ÇëÇó·ÃÎÊ Oracle µÄÿ¸öÓû§£¨Êý¾Ý¿âÕÊ»§£©±ØÐëͨ¹ýÑéÖ¤¡£ÑéÖ¤¹¤×÷¿ÉÒÔÓÉÊý¾Ý¿â¡¢²Ù×÷ϵͳ»òÍøÂç·þÎñÀ´×ö¡£³ý»ù±¾µÄÑéÖ¤£¨¿ÚÁîÑéÖ¤£©Í⣬Oracle »¹Ö§³ÖÇ¿ÑéÖ¤»úÖÆ£¬ÈçKerberos¡¢CyberSafe¡¢RADIUS£¬µÈµÈ¡£

¡¡¡¡½ÇÉ«¡£ Oracle ½ÇÉ«ÊÇÒ»¸öȨÏÞµÄÓÐÃû¼¯¡£¾¡¹Ü¿ÉÒÔÖ±½ÓÊÚÓèÓû§ÕÊ»§È¨ÏÞ£¬µ«Ê¹ÓýÇÉ«¿ÉÒÔ¼«´ó¼ò»¯Óû§¹ÜÀí£¬ÓÈÆäÊÇÐèÒª¹ÜÀí´óÁ¿Óû§Ê±¡£´´½¨Ò×¹ÜÀíµÄС½ÇÉ«£¬È»ºó¸ù¾ÝÓû§µÄ°²È«¼¶±ðÊÚÓèÓû§Ò»¸ö»ò¶à¸ö½ÇÉ«£¬ÕâÑù×öµÄЧÂʷdz£¸ß¡£¸ü²»ÓÃ˵ÐÞ¸ÄȨÏÞ±äµÃÈçºÎ¼òµ¥ÁË -- Ö»ÐèÐ޸ĽÇÉ«¹ØÁªµÄ½ÇÉ«¼´¿É£¬ÎÞÐèÐÞ¸Äÿ¸öÓû§ÕÊ»§¡£

¡¡¡¡ÎªÁ˼ò»¯ÐÂÓû§´´½¨³õÆڵŤ×÷£¬Oracle ×Ô´øÁËÈý¸öÔ¤¶¨ÒåµÄ½ÇÉ«£º

¡¡¡¡?CONNECT ½ÇÉ« -- ¸Ã½ÇɫʹÓû§¿ÉÒÔÁ¬½ÓÊý¾Ý¿âÒÔ¼°Ö´Ðлù±¾µÄ²Ù×÷£¬Èç´´½¨×Ô¼ºµÄ±í¡£Ä¬ÈÏÇé¿öÏ£¬¸Ã½ÇÉ«²»ÄÜ·ÃÎÊÆäËûÓû§µÄ±í¡£
¡¡¡¡?RESOURCE ½ÇÉ« -- RESOURCE ½ÇÉ«Óë CONNECT ½ÇÉ«ÏàËÆ£¬µ«ËüÔÊÐíÓû§ÓµÓн϶àµÄϵͳȨÏÞ£¬Èç´´½¨´¥·¢Æ÷»ò´æ´¢¹ý³Ì¡£
¡¡¡¡?DBA ½ÇÉ« -- ÔÊÐíÓû§ÓµÓÐËùÓÐϵͳȨÏÞ¡£
¡¡
¡¡¡¡Ê¹ÓÃÖеÄÊÚȨºÍȨÏÞ

¡¡¡¡ÔÚ±¾²¿·ÖÖУ¬ÎÒÃǽ«ÌÖÂÛÈçºÎʹÓà Oracle µÄÊÚȨºÍȨÏÞÀ´Ìá¸ß±¾ÎÄ¿ªÍ·²¿·ÖÌÖÂÛµÄÄǸö¼òµ¥ CMS ʾÀýµÄ°²È«ÐÔ¡£¼Ù¶¨£¬Ìṩ¸øÓ¦ÓóÌÐòÓû§µÄÄÚÈÝ´æ´¢ÔÚ WEB_CONTENT ±íÖС£

¡¡¡¡Ê×ÏÈ£¬´´½¨¸Ã±í¡£Æô¶¯ Oracle Êý¾Ý¿âÌرð°æ£¬ÒÔϵͳ¹ÜÀíÔ±Éí·ÝµÇ¼¡£Èç¹û»¹Ã»ÓÐÊÍ·ÅʾÀý HR Óû§£¬Ç뽫ÆäÊÍ·Å¡£°´ÕÕÌرð°æ°²×°¸½´øµÄÈëÃÅÖ¸ÄÏÖеÄָʾ²Ù×÷¡£Çë×¢Ò⣬ĬÈÏÇé¿öÏ£¬HR Óû§±»¸³Óè RESOURCE ½ÇÉ«¡£ÔÚÕâÀ¸³Óè¸ÃÓû§ DBA ½ÇÉ«£¬ÕâÑù¾Í¿ÉÒÔʹÓøÃÕÊ»§¹ÜÀí CMS Ó¦ÓóÌÐòµÄÊý¾Ý¿â·½ÃæÁË¡£µ±È»£¬²»»áʹÓà HR Óû§ÕÊ»§½øÐÐÔÚÏß·ÃÎÊ£¬Ö»ÓÃËü¹ÜÀíÊý¾Ý¿â¡£

¡¡¡¡ÏÖÔÚ£¬¿ÉÒÔʹÓöÔÏóä¯ÀÀÆ÷»òͨ¹ýÖ´ÐÐ SQL Commands ´°¿Ú´´½¨ÐÂ±í¡£ÏÂÃæÊÇ´´½¨¸Ã±íµÄ´úÂ룺

[code]CREATE TABLE WEB_CONTENT (
page_id NUMBER PRIMARY KEY,
page_content VARCHAR2(255)
);[/code]

¡¡¡¡ÓÉÓڸñíÊÇʹÓà HR Óû§ÕÊ»§´´½¨µÄ£¬Òò´Ë¸Ã±í¹é HR ÕÊ»§ËùÓв¢Î»ÓÚ HR ģʽÖУ¬²¢ÇÒÔÚÃ÷È·ÊÚÓèÆäËûÓû§·ÃÎʸñíµÄȨÏÞÇ°£¬ÆäËûÓû§ÎÞ·¨·ÃÎÊ¸Ã±í¡£Èç¹û²»ÐÅ£¬¿ÉÒÔ´´½¨Ò»¸öÐÂÓû§£¬ÓøÃÓû§·ÃÎÊ WEB_CONTENT ±íÊÔÊÔ¡£

¡¡¡¡ÏÖÔÚ£¬´´½¨Á½¸öÐÂÓû§£¬CMS_USER ºÍ CMS_EDITOR¡£×îÖÕ£¬½«ÊÚÓè CMS_USER ¶Ô WEB_CONTENT ±íµÄÖ»¶ÁȨÏÞ£¬²¢½«¸ÃÓû§ÓÃ×÷ΪÄäÃû Web Óû§ÌṩÄÚÈݵÄÊý¾Ý¿âÕÊ»§¡£CMS_EDITOR ÕÊ»§½«ÔڸñíÉÏÓµÓиü¶àȨÏÞ£¬½«±»ÓÃ×÷ CMS ±à¼­µÄÕÊ»§£¨¸ÃÕÊ»§ÐèÒª¸ü¸ÄºÍά»¤¸Ã±íÖеÄÊý¾Ý£©¡£

¡¡¡¡¿ÉÒÔʹÓà XE µÄͼÐνçÃæ»òͨ¹ýÖ´ÐÐÒÔÏÂÃüÁî´´½¨ÐÂÓû§£º

[code]CREATE USER cms_user IDENTIFIED BY cms_user;
CREATE USER cms_editor IDENTIFIED BY cms_editor;
¡¡¡¡¡¡¡¡£¨³öÓÚ¼ò»¯µÄÄ¿µÄ£¬´Ë´¦µÄ¿ÚÁîÓëÓû§Ãû¶ÔÓ¦¡££©[/code]

¡¡¡¡ÎªÁËÈÃÕâÁ½¸öÕÊ»§¶¼µÇ¼Êý¾Ý¿â£¬ÎÒÃÇÐèÒª¸³ÓèËüÃÇ CONNECT ½ÇÉ«¡£Îª´Ë£¬ÔÚ XE ͼÐνçÃæµÄ Administration/Database Users ²¿·ÖÑ¡ÖÐÓû§ÐÅÏ¢Ï嵀 CONNECT ¸´Ñ¡¿ò£¬»òÖ´ÐÐÒÔÏÂÃüÁ

[code]GRANT CONNECT to cms_user;
GRANT CONNECT to cms_editor;[/code]

¡¡¡¡ÏÖÔÚ£¬Èç¹û³¢ÊÔÒÔ CMS_USER »ò CMS_EDITOR Óû§µÇ¼²¢ÊÔͼ´Ó WEB_CONTENT ±í¶ÁÈ¡Êý¾Ý (select * from hr.web_content;)£¬½«Óöµ½ÒÔÏ´íÎó£º

[code]ORA-00942:table or view does not exist[/code]

¡¡¡¡ÎªÁË·ÃÎÊÊý¾Ý»ò½öÊÇ¿´µ½±í£¬ÐèÒªÊÚÓè CMS_USER ºÍ CMS_EDITOR ÕÊ»§¶Ô WEB_CONTENT ±íµÄÖ»¶ÁȨÏÞ£º

[code]GRANT SELECT on hr.web_content to cms_user;
GRANT SELECT on hr.web_content to cms_editor;[/code]

¡¡¡¡ÒÔÉÏ´úÂëʹÕâÁ½¸öÕÊ»§¿ÉÒÔ¶Ô WEB_CONTENT ±íÖ´ÐÐ SELECT Óï¾ä¡£Èç¹û³¢ÊÔÖ´ÐÐÆäËûÓï¾ä£¬Ôò»áÓöµ½´íÎó¡£ÀýÈ磬²åÈëÒ»ÐУº

[code]INSERT INTO hr.web_content (page_id,page_content) VALUES (1,'hello world');[/code]

¡¡¡¡½«²úÉú´íÎóÏûÏ¢

[code]ORA-01031:insufficient privileges[/code]

¡¡¡¡ÒªÔÊÐí CMS_EDITOR ¸ü¸Ä¸Ã±íµÄÄÚÈÝ£¬ÐèÒªÊÚÓèÒÔÏÂȨÏÞ£º

[code]GRANT INSERT,UPDATE,DELETE on hr.web_content to cms_editor;[/code]

¡¡¡¡´ÓÏÖÔÚÆð£¬CMS_EDITOR ÕÊ»§¿ÉÒÔ¶Ô WEB_CONTENT ±íÖ´ÐÐ INSERT¡¢UPDATE ºÍ DELETE Óï¾ä¡£

¡¡¡¡Äú¿´£¬ÕâÓжà¼òµ¥£¡¿É¼ûͨ¹ý½ÇÉ«¹ÜÀíȨÏÞÊǸüÓÐЧµÄ·½·¨¡£Èç¹ûʹÓÃµÄ Oracle Êý¾Ý¿â²»ÊÇ XE£¬¿ÉÒÔÖ´ÐÐÈçϲÙ×÷£º

¡¡¡¡´´½¨½ÇÉ«£º

[code]CREATE ROLE reader;
CREATE ROLE writer;[/code]

[code]GRANT SELECT ON web_content TO reader;
GRANT INSERT,UPDATE,DELETE ON web_content TO writer;[/code]

¡¡¡¡¸³ÓèÓû§½ÇÉ«£º

[code]GRANT reader TO cms_user;
GRANT reader TO cms_editor; (they need to read too)
GRANT writer TO cms_editor;[/code]

¡¡¡¡Çë×¢Ò⣬Èç¹û¸ü¸Ä READER ½ÇÉ«µÄ¶¨Ò壬ÔòÕâЩ¸ü¸Ä»áÓ°ÏìËùÓоßÓиýÇÉ«µÄÓû§ÕÊ»§¡£Èç¹ûÊÇÖ±½Ó½«È¨ÏÞÊÚÓèÓû§µÄ£¬Ôò±ØÐëÖð¸ö¸üÐÂÿ¸öÓû§ÕÊ»§¡£

¡¡¡¡Íê³ÉÉÏÊö²½Öèºó£¬¿ÉÒÔÅäÖà PHP Ó¦ÓóÌÐò£¬Ê¹Ö®¶ÔÓÉÄäÃû Web Óû§ÇëÇóµÄËùÓÐÊý¾Ý¿âÁ¬½Ó¾ùʹÓà CMS_USER ÕÊ»§£¬¶ÔÓÉÊÜ¿ÚÁî±£»¤µÄ¹ÜÀíÒ³ÃæÒý·¢µÄÁ¬½ÓʹÓà CMS_EDITOR ÕÊ»§¡£ÏÖÔÚ£¬¼´Ê¹¹«¹² Web ±íµ¥Êܵ½¹¥»÷£¬¸Ã¹¥»÷¶ÔÊý¾Ý¿âµÄÓ°Ï콫΢ºõÆä΢£¬ÕâÊÇÒòΪ CMS_USER ÕÊ»§½ö¾ßÓÐÖ»¶ÁȨÏÞ¡£

¡¡¡¡½áÂÛ

¡¡¡¡ÔÚ±¾ÎÄÖУ¬ÎÒÃÇÖ»ÊǼòµ¥½éÉÜÁË Oracle Êý¾Ý·ÃÎÊ°²È«ÐÔµÄһЩ×î»ù±¾µÄÌØÐÔ¡£´ËÍ⣬Oracle »¹ÓÐÐí¶àÆäËûÌØÐÔ£¬¿É°ÑÄúµÄ Web Ó¦ÓóÌÐòµÄ°²È«ÐÔÌá¸ßµ½Ò»¸öеĵȼ¶ -- °üÀ¨ÐéÄâרÓÃÊý¾Ý¿â (VPD) ºÍ±êÇ©°²È«ÐÔ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ