PL/SQL, мощнейший процедурный язык корпорации Oracle, является основой приложений, разрабатываемых на технологиях Oracle на протяжении последних 15 лет. Изначально PL/SQL предназначался только для разработчиков. Однако теперь он стал важнейшим инструментом администрирования баз данных, поскольку ответственность администраторов за производи-тельность баз данных увеличилась, а границы между разработчиками и администраторами постепенно стираются. #Oracle PL/SQL для администраторов баз данных# # первая книга, в которой язык PL/SQL рассматривается с точки зрения администрирования. Изложение ориентировано на версию Oracle 10g Release 2 и начинается с обзора PL/SQL, достаточного для знакомства администратора базы данных с основами этого языка и начала работы на нем. Далее подробно обсуждаются вопросы обеспечения безопасности, относящиеся к администрированию базы данных: шифрование (описаны как традиционные методы, так и новое прозрачное шифрование данных Oracle # TDE), контроль доступа на уровне строк (RLS), детальный аудит (FGA) и генерация случайных значений. Уделено внимание способам повышения производительности базы данных и запросов за счет применения курсоров и табличных функций. Рассматривается использование планировщика Oracle, позволяющего настроить регулярное выполнение таких заданий, как мониторинг базы данных и сбор статистики.
Author(s): Нанда, Фейерштейн
Publisher: Символ
Year: 2008
Language: Russian
Commentary: 1146119930. eBook (изначально ко
Pages: 494
Оглавление......Page 6
Предисловие......Page 9
Обеспечение безопасности базы данных......Page 10
Эффективное использование возможностей Oracle......Page 11
Воспитание новых разработчиков и администраторов ......Page 12
Серия O’Reilly, посвященная PL/SQL......Page 18
PL/SQL в Интернете......Page 19
Что такое PL/SQL?......Page 24
Основные элементы синтаксиса PL/SQL......Page 25
Структура блока PL/SQL......Page 26
Набор символов PL/SQL......Page 28
Идентификаторы......Page 29
Литералы......Page 30
Комментарии......Page 32
Программные данные......Page 33
Типы данных PL/SQL......Page 34
Объявление программных данных......Page 38
Управляющие операторы......Page 41
Операторы и выражения CASE......Page 42
Циклы в PL/SQL......Page 43
Цикл FOR......Page 44
Цикл WHILE......Page 45
Определение исключений......Page 46
Инициирование исключений......Page 47
Обработка исключений......Page 48
Объявление записей......Page 51
Работа с записями......Page 52
Работа с коллекциями......Page 54
Встроенные методы коллекций......Page 59
Процедуры, функции и пакеты......Page 60
Процедуры......Page 61
Функции......Page 63
Параметры......Page 66
Пакеты......Page 69
Выборка данных......Page 74
Типичные операции над запросами......Page 75
Атрибуты курсоров......Page 76
Неявные курсоры......Page 77
Явные курсоры......Page 79
BULK COLLECT......Page 82
Курсорные переменные и типы REF CURSOR......Page 83
Изменение данных......Page 86
Оператор UPDATE......Page 87
Оператор DELETE......Page 88
Атрибуты курсоров для операций DML......Page 89
Пакетные операции DML и оператор FORALL......Page 90
Управление транзакциями в PL/SQL......Page 95
Оператор ROLLBACK......Page 96
Автономные транзакции......Page 97
Триггеры DML......Page 99
Триггеры DDL......Page 104
Триггеры событий базы данных......Page 105
Оператор EXECUTE IMMEDIATE......Page 107
Оператор OPEN FOR......Page 110
Динамический PL/SQL......Page 111
Заключение: от основ к применению PL/SQL......Page 113
Глава 2. Курсоры......Page 114
Полный и частичный разбор......Page 115
Планирование использования курсора......Page 117
Как Oracle принимает решение о совместном использ......Page 118
Переформатирование курсора PL/SQL......Page 121
Литералы......Page 122
Алгоритмы сопоставления......Page 124
Совпадения текстов может быть недостаточно......Page 127
В чем отличие?......Page 129
Атрибуты курсора......Page 130
Несовпадение в разделяемом пуле......Page 132
Мягкое закрытие курсора......Page 133
Открытие явных и неявных курсоров......Page 134
Динамический SQL......Page 136
Массовая выборка......Page 138
Тип данных REF CURSOR......Page 141
Курсор в качестве параметра......Page 144
Курсорные выражения......Page 145
Заключение......Page 149
Глава 3. Табличные функции......Page 150
Простой пример......Page 151
Определение структуры результирующего множества......Page 153
Курсоры, конвейеризация, вложение......Page 155
Курсоры......Page 156
Конвейеризованные табличные функции......Page 158
Вложенные табличные функции......Page 160
Распараллеливание табличных функций......Page 161
Преимущества параллельных запросов......Page 162
Распределение записей......Page 163
Какой вариант выбрать?......Page 168
Что делает Oracle?......Page 169
Использование табличных функций......Page 170
Заголовок функции......Page 172
Основной цикл......Page 173
Массовая выборка критериев......Page 174
Определение потенциальных повторов......Page 175
Определение фактических повторов......Page 177
Выполнение функции......Page 178
Функция суммирования......Page 179
Трассировка......Page 181
Установка временных ограничений......Page 182
Использование вложенных курсоров......Page 183
Критика SYS_REFCURSOR......Page 186
REF CURSOR и вложение......Page 188
Стандартизация имен объектов и коллекций......Page 189
Остерегайтесь необработанных исключений......Page 190
Отсутствие режима Read Committed......Page 191
Заключение......Page 192
Глава 4. Шифрование и хеширование данных......Page 193
Введение в шифрование......Page 194
Компоненты шифрования......Page 196
Влияние длины ключа......Page 197
Сравнение симметричного и асимметричного шифрован......Page 198
Алгоритмы шифрования......Page 201
Дополнение и сцепление......Page 202
Шифрование данных......Page 203
Задание вектора инициализации......Page 207
Расшифровывание данных......Page 208
Шифрование данных типа RAW......Page 210
Многопроходное шифрование......Page 211
Сводим воедино......Page 213
Генерирование ключей......Page 215
Шифрование на практике......Page 220
Различия между DBMS_CRYPTO и DBMS_OBFUSCATION_TOO......Page 222
Генерирование ключей......Page 223
Зашифровывание данных......Page 225
Расшифровывание данных......Page 232
Управление ключами в Oracle 10g......Page 234
Использование одного ключа......Page 235
Использование ключа для каждой строки......Page 236
Комбинированный подход......Page 237
Прозрачное шифрование данных в Oracle 10g Release......Page 244
Настройка TDE......Page 246
Использование TDE для уже существующих таблиц......Page 247
Управление ключами и паролями для TDE......Page 248
Криптографическое хеширование......Page 249
Дело о подозрительном сэндвиче......Page 250
Хеширование MD5 в Oracle9i......Page 251
Хеширование SHA-1 в Oracle 10g......Page 253
Код аутентификации сообщения (MAC) в Oracle 10g......Page 255
Создание реальной системы шифрования......Page 258
Заключение......Page 262
Введение в RLS......Page 264
Зачем вам знать об RLS?......Page 266
Простой пример......Page 267
Использование RLS......Page 271
Проверка перед обновлением......Page 272
Статические политики RLS......Page 273
Определение динамической политики......Page 279
Повышение производительности......Page 284
Контроль доступа к таблице......Page 288
Применение RLS к отдельным столбцам......Page 292
Типы политик......Page 296
Интерпретация ошибок......Page 299
Операции в прямом режиме......Page 301
Проверка перезаписи запроса......Page 302
Взаимодействие RLS с другими функциями Oracle......Page 303
Контексты приложения......Page 304
Простой пример......Page 306
Безопасность контекстов приложения......Page 307
Контексты как предикаты RLS......Page 308
Идентификация пользователей, не зарегистрированны......Page 311
Заключение......Page 314
Глава 6. Детальный аудит......Page 315
Что такое аудит?......Page 316
Зачем нам знать об FGA?......Page 317
Простой пример......Page 319
Аудит и различные версии СУБД Oracle......Page 320
Какие еще сведения собирает FGA?......Page 321
FGA и ретроспективные запросы......Page 322
Настройка FGA......Page 325
Выбор столбцов для аудита......Page 326
Выбор условий аудита......Page 327
Запись переменных связывания......Page 329
Задание модуля обработки......Page 331
Представление DBA_AUDIT_POLICIES......Page 338
Использование процедур DBMS_FGA......Page 339
Дополнительные команды DML......Page 340
Дополнительные представления словаря данных и сто......Page 341
Комбинация столбцов......Page 343
Детальный аудит и триггеры......Page 345
FGA и обычный аудит......Page 349
Пользователи, не зарегистрированные в базе данных......Page 351
Контексты приложения......Page 352
Отладка FGA......Page 353
Заключение......Page 356
Глава 7. Генерирование случайных значений......Page 357
Генерирование положительных чисел......Page 358
Генерирование отрицательных чисел......Page 362
Задание начального значения для генератора случай......Page 364
Генерирование строк......Page 366
Проверка на случайность......Page 370
Следование статистическим шаблонам......Page 371
Генерирование строк......Page 374
Генерирование случайных строк случайной длины......Page 375
Сводим воедино......Page 376
Заключение......Page 379
Глава 8. Использование планировщика......Page 380
Зачем использовать планировщик заданий Oracle?......Page 382
Простой пример......Page 385
Основы управления заданиями......Page 389
Календарные строки......Page 392
Именованные расписания......Page 400
Владелец расписания......Page 402
Создание программы......Page 403
Запуск программ других пользователей......Page 404
Использование диспетчера ресурсов......Page 406
Класс заданий......Page 408
Управление окнами......Page 410
Создание окна......Page 411
Приоритеты окон......Page 412
Получение информации об окнах......Page 413
Отключение и включение окон......Page 414
Принудительное открытие и закрытие окон......Page 415
Группы окон......Page 416
Управление журналированием......Page 417
Журналы заданий......Page 418
Журналы окон......Page 422
Управление атрибутами......Page 424
Задания......Page 425
Программы......Page 428
Группы окон......Page 429
Заключение......Page 430
DES3GETKEY......Page 431
DESGETKEY......Page 432
DES3ENCRYPT......Page 433
DESENCRYPT......Page 434
DES3DECRYPT......Page 435
MD5......Page 437
ENCRYPT......Page 438
DECRYPT......Page 439
HASH......Page 441
MAC......Page 442
ADD_POLICY......Page 443
REFRESH_POLICY......Page 445
Представления словаря данных для RLS......Page 446
ADD_POLICY......Page 447
DISABLE_POLICY......Page 448
Представления словаря данных для FGA......Page 449
SEED......Page 452
STRING......Page 453
CREATE_JOB......Page 454
CREATE_JOB_CLASS......Page 458
COPY_JOB......Page 459
ENABLE......Page 460
CREATE_SCHEDULE......Page 461
CREATE_WINDOW......Page 462
OPEN_WINDOW......Page 464
Представления словаря данных для планировщика......Page 465
Алфавитный указатель......Page 471