Иван Задворьев - Язык PL/SQL

Тут можно читать онлайн Иван Задворьев - Язык PL/SQL - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Array SelfPub.ru, год 2018. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Иван Задворьев - Язык PL/SQL краткое содержание

Язык PL/SQL - описание и краткое содержание, автор Иван Задворьев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.

Язык PL/SQL - читать онлайн бесплатно полную версию (весь текст целиком)

Язык PL/SQL - читать книгу онлайн бесплатно, автор Иван Задворьев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

4 /

TEXT

PROCEDURE test AS

i INTEGER := 1;

BEGIN

SELECT i+1 INTO i FROM dual;

END;

Именно из этих представлений словаря-справочника данных формируют исходный код хранимых программ GUI-клиенты (Quest SQL Navigator, TOAD, PL/SQL Developer) при открытии программ в Stored Program Editor и выполнении операций Extract DDL. Администратор базы данных в представлении DBA_SOURCE может посмотреть исходный код любой хранимой программы и фактически получается так, что все программное обеспечение, написанное на PL/SQL, является open-source software.

Разобраться в коде PL/SQL довольно легко и у кого-то может возникнуть желание внести изменения в логику чужой программы или в ее настройки. Довольно часто настройки программ PL/SQL «зашивают» в коде как локальные константы тел пакетов, и может возникнуть желание несанкционированно их поменять. Помимо этого на исходный код программ PL/SQL могут иметься права как на интеллектуальную собственность.

По этим причинам возникает необходимость защитить исходный код программ PL/SQL от чтения и изменения. Сделать так, чтобы исходный код не распространялся вместе с программами нельзя, но можно его специальным образом обработать – привести к нечитаемому виду. Мы будем использовать термин «нечитаемый код» («скрытый код»), а процесс приведения кода к нечитаемому виду называть сокрытием кода.

Для приведения кода PL/SQL к нечитаемому виду есть три средства:

утилита wrap;

встроенный пакет DBMS_DDL;

встроенный пакет DBMS_WRAP (с Oracle 10g Release 2).

Общая схема сокрытия исходного кода PL/SQL следующая:

программист разрабатывает программу PL/SQL как обычно;

выгружает исходный код программы в текстовый файл (операция Extract DDL средства разработки на PL/SQL);

обрабатывает исходный код в файле утилитой wrap;

полученный DDL-скрипт с нечитаемым исходным кодом программы PL/SQL доставляется администратору, который «прогоняет» его в базе данных.

Утилита wrap работает из командной строки операционной системы. Для Windows ее исполняемый файл wrap.exe нужно запустить из подкаталога BIN домашнего каталога инсталляции Oracle. Формат вызова утилиты:

wrap iname=исходный_файл [oname=обработанный файл]

Обработаем исходный код нашей процедуры test.

C:\Temp>wrap.exe iname=test.sql oname=test_wrapped.sql

PL/SQL Wrapper: Release 11.2.0.2.0-Production on Wed Jan 13 17:51:44 2015

Copyright (c) 1993, 2009, Oracle. All rights reserved.

Processing test.sql to test_wrapped.sql

Можно сразу посмотреть в текстовом редакторе получившийся файл test_wrapped.sql, но лучше мы сначала пересоздадим нашу процедуру, а потом посмотрим ее код в USER_SOURCES.

C:\Temp\sqlplus.exe u1/u1password @test_wrapped.sql

SQL*Plus: Release 11.2.0.2.0 Production on Wed Jan 13 17:57:02 2015

Copyright (c) 1982, 2010, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

Procedure created.

SQL> SELECT text FROM USER_SOURCE

2 WHERE name='TEST' AND type='PROCEDURE'

3 ORDER BY line

4 /

TEXT

PROCEDURE test wrapped

a000000

ab

abcd

abcd

7

51 8d

suQy2odKI6E8Sra9zNpbNb8IqrAwg5SXf8upynREacFBBrvc2NNbRvLsynXhgKU2wLXjHtmY

DTDLTIiGQltxbGfKvlKRlWFqVHtX8kGHrS0gyD3ka0e/J74vRQynV1uZUJv7WQW2hw==

Нечитаемый исходный код еще называют «wrap’ленный исходник». Отметим его следующие свойства:

исходный текст процедуры test стал совершенно нечитаемым;

после названия хранимой процедуры test есть слово wrapped, говорящее о проведенном сокрытии кода.

При сокрытии исходного кода PL/SQL следует учитывать следующие обстоятельства:

сокрытие кода никак не влияет на функциональность программы PL/SQL, просто становится нечитаемым ее исходный код;

общепринято оставлять читаемым спецификации пакетов (то есть интерфейсную часть) и «закрывать» их тела (в частности, так сделано практически для всех встроенных пакетов);

нельзя делать нечитаемым исходный код триггеров (для этого следует вынести логику из триггеров в хранимые процедуры и функции с нечитаемым кодом и в триггерах только вызывать их);

программы с нечитаемым кодом не могут быть созданы в базе данных версии ниже той, чем версия утилиты, которой они были обработаны;

на каждую версию wrap рано или поздно найдется unwrap или rewrap.

Известно несколько программ, выполняющих обратное преобразование нечитаемого кода, для которых надо только аккуратно выгрузить нечитаемый код из словаря-справочника данных (обычная операция Extract DDL здесь непригодна). Имеются и публикации на эту тему.

Встроенные пакеты

В базах данных Oracle имеется большое количество встроенных пакетов PL/SQL, предназначенных для облегчения и унификации процесса разработки на PL/SQL. Эти пакеты следует рассматривать как стандартные библиотеки, имеющиеся в других языках программирования, например, в C++ и Python. Встроенные пакеты PL/SQL также иногда называют поставляемыми пакетами (Oracle Supplied PL/SQL Packages).

Встроенные пакеты находятся в схеме пользователя SYS и имеют имена с префиксами DBMS и UTL. Число встроенных пакетов растет с выходом каждой новой версии сервера Oracle, вместе с Oracle 11g поставляется свыше 230 встроенных пакетов.

Некоторые встроенные пакеты, например, DBMS_SQL и DBMS_LOB используются при разработке программ PL/SQL очень часто, другие встроенные пакеты используются относительно редко. В литературе по PL/SQL обычно рассматриваются встроенные пакеты, предназначенные для организации ввода-вывода из программ PL/SQL и некоторые встроенные пакеты, предназначенные для автоматизации администрирования баз данных.

Далее приведены примеры использования следующих четырех встроенных пакетов:

DBMS_JOB (управление заданиями);

UTL_FILE (файловый ввод-вывод);

DBMS_LOB (работа с большими объектами);

DBMS_SQL (динамический SQL).

Управление заданиями

В большинстве вычислительных систем существует механизм, который позволяет автоматически запускать задания. Например, в операционной системе Microsoft Windows есть «Планировщик задач» (Task scheduler), который предоставляет возможность запланировать запуск программ в определенные моменты времени или через заданные временные интервалы. В UNIX-подобных операционных системах (Linux, Oracle Solaris) есть cron – классический демон-планировщик задач, использующийся для запуска заданий в определенное время.

Для сервера Oracle задания запускаются специальными фоновыми процессами (Job queue processes, Jnnn), а для управления заданиями предназначен встроенный пакет DBMS_JOB. Число фоновых процессов Jnnn настраивается параметром экземпляра job_queue_processes. Если задания не запускаются в назначенное им время, то следует проверить значение этого параметра, выставить при необходимости для него ненулевое значение и перезапустить экземпляр Oracle.

Автоматический запуск заданий в Oracle может использоваться для решения задач администрирования баз данных, например, автоматического сбора статистики или анализа журналов аудита. Также в заданные моменты времени могут автоматически запускаться и прикладные задачи, такие, например, как загрузка данных, поступивших из внешних источников, формирование месячных счетов к оплате или расчет клиентской задолженности. Ресурсоемкие операции, такие как подготовка аналитических отчетов, следует запускать в то время, когда серверы баз данных загружены меньше – ночью или в выходные дни. Понятно, что такие задания также должны запускаться автоматически, без участия человека.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Иван Задворьев читать все книги автора по порядку

Иван Задворьев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык PL/SQL отзывы


Отзывы читателей о книге Язык PL/SQL, автор: Иван Задворьев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x