1 / 33

Surviving without Oracle HTTP Server

Surviving without Oracle HTTP Server. Конфигуриране на Oracle Embedded PLSQL Gateway. Стоян Иванов Семантек България ООД. Проблем. Oracle Express Edition се предлага без Oracle HTTP Server powered by Apache Има много приложения, разработени с MOD_PLSQL

adora
Download Presentation

Surviving without Oracle HTTP Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Surviving without Oracle HTTP Server Конфигуриране на Oracle Embedded PLSQL Gateway Стоян Иванов Семантек България ООД

  2. Проблем • Oracle Express Edition се предлага без Oracle HTTP Server powered by Apache • Има много приложения, разработени с MOD_PLSQL • Преписването им на APEX не е тривиална задача • Има много разработчици, които умеят да пишат приложения с MOD_PLSQL и нямат време и/или желание да учат APEX

  3. Решение – Oracle EPG • Базиран на XMLDB • Използва Oracle Net Listener • Позволява дефинирането на DAD-ове • Работи както на OracleXE, така и на Standard и Enterprise версията

  4. Необходими стъпки • Инсталиране на XMLDB • Разрешаване на HTTP порт • Разрешаване на remote access • Създаване на функция, управляваща security-то • Създаване на DAD (Data Access Descriptor)

  5. Незадължителни стъпки • Създаване на допълнителни виртуални пътища • Разрешаване на достъп за потребителя ANONYMOUS • Качване на файлове (картинки, cascading stylesheets, javascript, …)

  6. Други благинки • Използване на Oracle EPG като WebDAV сървър • Използване на Oracle EPG като FTP сървър

  7. Необходими стъпки • Инсталиране на XMLDB • Разрешаване на HTTP порт • Разрешаване на remote access • Създаване на функция, управляваща security-то • Създаване на DAD (Data Access Descriptor)

  8. Инсталиране на XMLDB • Инсталиран по подразбиране • Може да се преинсталира използвайки DBCA • Потребителя, с който се конфигурира, трябва да има ролята XDBADMIN • Пакети DBMS_XDB и DBMS_EPG

  9. Необходими стъпки • Инсталиране на XMLDB • Разрешаване на HTTP порт • Разрешаване на remote access • Създаване на функция, управляваща security-то • Създаване на DAD (Data Access Descriptor)

  10. Конфигурация на XDB • select * from xdb.xdb$config SYS_NC_ROWINFO$ -------------------------------------------------------------------------------- <xdbconfigxmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" si:schemaLocation="http://xmlns.oracle.com/xdb/xdbconfig.xsd http://xmlns.oracle.com/xdb /xdbconfig.xsd"> <sysconfig> <acl-max-age>900</acl-max-age> <acl-cache-size>32</acl-cache-size> <invalid-pathname-chars>,</invalid-pathname-chars> <case-sensitive>true</case-sensitive> <call-timeout>300</call-timeout> …

  11. Разрешаване на HTTP порт SQL> update xdb.xdb$config e Set xmldata."sysconfig"."protocolconfig"."httpconfig"."http-port" = '8080'; 1 row updated. SQL> commit; Commit complete. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. ... Database mounted. Database opened.

  12. Разрешаване на HTTP порт lsnrctl status … Listening Endpoints Summary... … DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ivanov.semantec.bg)(PORT=8080))(Presentation=HTTP)(Session=RAW)) Services Summary... … Service "SPIXDB" has 1 instance(s). Instance "spi", status READY, has 1 handler(s) for this service... Service "SPI_XPT" has 1 instance(s). Instance "spi", status READY, has 1 handler(s) for this service... The command completed successfully

  13. Разрешаване на HTTP порт • EXEC DBMS_XDB.SETHTTPPORT(8080); • Няма нужда от рестартиране на базата

  14. Необходими стъпки • Инсталиране на XMLDB • Разрешаване на HTTP порт • Разрешаване на remote access • Създаване на функция, управляваща security-то • Създаване на DAD (Data Access Descriptor)

  15. Разрешаване на remote access update xdb.xdb$config e Set e.xmldata."sysconfig"."protocolconfig"."httpconfig"."http-host" = NULL / update xdb.xdb$config e set e.xmldata."sysconfig"."protocolconfig"."httpconfig"."http-host" = ‘localhost’ /

  16. Разрешаване на remote access EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); За Oracle Standard Edition и Oracle Enterprise Edition ако в LISTENER.ORAимаме HOST=localhost или HOST=127.0.0.1 тогава имаме само локален достъп

  17. Необходими стъпки • Инсталиране на XMLDB • Разрешаване на HTTP порт • Разрешаване на remote access • Създаване на функция, управляваща security-то • Създаване на DAD (Data Access Descriptor)

  18. Създаване на функция, управляваща security-то • Поддържа BASIC authentication • Не поддържа кодиране на паролата в DAD • За custom authentication няма друг избор освен да се ползва потребителя ANONYMOUS • Директива request-validation-function на DAD

  19. Създаване на функция, управляваща security-то CREATE FUNCTION epg_access_validation ( PROCEDURE_NAME IN VARCHAR2 ) RETURN BOOLEAN IS BEGIN IF UPPER(procedure_name) IN (…) THEN RETURN TRUE; ELSE RETURN FALSE; END IF; END epg_access_validation /

  20. Необходими стъпки • Инсталиране на XMLDB • Разрешаване на HTTP порт • Разрешаване на remote access • Създаване на функция, управляваща security-то • Създаване на DAD (Data Access Descriptor)

  21. Създаване на DAD exec dbms_epg.create_dad( 'DADNAME','/dadvirtualpath/*'); exec dbms_epg.set_dad_attribute( 'DADNAME', 'default-page','mypackage.myhome'); exec dbms_epg.set_dad_attribute( 'DADNAME', 'request-validation-function', 'epg_access_validation');

  22. Незадължителни стъпки • Създаване на допълнителни виртуални пътища • Разрешаване на достъп за потребителя ANONYMOUS • Качване на файлове (картинки, cascading stylesheets, javascript, …)

  23. Създаване на допълнителни виртуални пътища DBMS_EPG.map_dad ( dad_name => ‘DADNAME', path => '/newvirtualpath/*‘ ); DBMS_EPG.unmap_dad ( dad_name => ‘DADNAME', path => '/newvirtualpath/*‘ );

  24. Незадължителни стъпки • Създаване на допълнителни виртуални пътища • Разрешаване на достъп за потребителя ANONYMOUS • Качване на файлове (картинки, cascading stylesheets, javascript, …)

  25. Разрешаване на достъп за потребителя ANONYMOUS exec dbms_epg.set_dad_attribute( 'DADNAME', 'database-username', 'ANONYMOUS‘ );

  26. Незадължителни стъпки • Създаване на допълнителни виртуални пътища • Разрешаване на достъп за потребителя ANONYMOUS • Качване на файлове (картинки, cascading stylesheets, javascript, …)

  27. Качване на файлове • Използва се DBMS_XDB • В общи линии не е документирано, представа може да се добие от скрипта APEX_EPG_CONFIG.sql, който идва с Oracle Application Express

  28. Качване на файлове dbms_xdb.createfolder(directory_path); dbms_xdb.createresource( resource_path, content_bfile, nls_charset_id );

  29. Използуване на Oracle EPG като WebDAVсървър

  30. Използване на Oracle EPG като FTP сървър • EXEC DBMS_XDB.SETFTPPORT(21); SQL> update xdb.xdb$config e Set xmldata."sysconfig"."protocolconfig".“ftpconfig".“ftp-port" = ‘21';

  31. Използване на Oracle EPG като FTP сървър e:\>ftp ivanov Connected to ivanov.semantec.bg. 220- ivanov 220 ivanov FTP Server (Oracle XML DB/Oracle Database) ready. User (ivanov.semantec.bg:(none)): system 331 pass required for SYSTEM Password: 230 SYSTEM logged in ftp> dir 200 PORT Command successful 150 ASCII Data Connection drw-r--r-- 2 SYS oracle 0 ┐┐┐┐. 19 11:07 public drw-r--r-- 2 SYS oracle 0 ┐┐┐┐. 19 11:07 sys -rw-r--r-- 1 SYS oracle 0 ┐┐┐. 19 20:50 xdbconfig.xml 226 ASCII Transfer Complete ftp: 196 bytes received in 0,01Seconds 19,60Kbytes/sec. ftp>

  32. Въпроси(и евентуално отговори)

More Related