Шифрование и секретность в Linux

       

Шифрование и секретность в Linux

Аутентификация и шифрование
Аутентификация клиента

Аутентификация с использованием паролей
Таблица 8 1 Структура таблицы pg_shadow
Листинг 8 1 Простой файл pgjiba conf
Листинг 8 2 Проверка прав доступа
Структура файла pg_hba conf

Листинг 8 3 Разделение полей в
Листинг 8 4 Комментарии в файле pgjiba conf
Листинг 8 5 Синтаксис записей файла pg_hba conf
Примеры записей в файле pg_hba conf
Листинг 8 6 Один доверенный хост

Листинг 8 7 Запрет доступа с одного хоста
Листинг 8 8 Один хост одна база данных
Листинг 8 9 Доверенная подсеть
Листинг 8 10 Доверенная подсеть
Файл pgjdent conf

Листинг 8 11 Выбор режима аутентификации
Листинг 8 12 Пример файла pgjdent conf
Листинг 8 13 Конфигурирование
Отказ в аутентификации
Шифрование сеанса

Встроенная поддержка SSL
SSH/OpenSSH
Листинг 8 14 Создание туннеля SSH на сервере PostgreSQL
Настройка и использование пакета Stunnel
OpenSSL

Stunnel
Запуск Stunnel
Запуск Stunnel в режиме демона
Листинг 8 15 Использование Stunnel
Листинг 8 16 Локальный запуск Stunnel

Запуск Stunnel с использованием inetd
Листинг 8 17 Примерная запись inetd
Листинг 8 18 Примерная запись xinetd
Выводы

Шифрование и секретность в Linux

Управление базами данных
Запуск и завершение PostgreSQL
Приложение pg_ctl
Запуск PostgreSQL в приложении pg_ctl
Листинг 9 1 Запуск PostgreSQL в приложении pg_ctl
Завершение PostgreSQL в приложении pg_ctl
Листинг 9 2 Завершение PostgreSQL в приложении pg_ctl

Перезапуск PostgreSQL в приложении pg_ctl
Листинг 9 3 Перезапуск PostgreSQL в приложении pg_ctl
Проверка состояния PostgreSQL в приложении pg_ctl
Листинг 9 4 Проверка состояния
Сценарий SysV
Листинг 9 5 Запуск PostgreSQL командой service
Листинг 9 6 Проверка состояния
Прямое обращение к postmaster
Инициализация файловой системы
Инициализация кластера баз данных

Листинг 9 7 Инициализация нового кластера
Инициализация вторичного каталога
Листинг 9 8 Инициализация вторичного каталога
Создание и удаление баз данных
Создание базы данных
Листинг 9 9 Проверка наличия права usecreatedb
Команда CREATE DATABASE
Листинг 9 10 Создание базы данных
Приложение createdb
Листинг 9 11 Использование приложения createdb

Удаление базы данных
Команда DROP DATABASE
Листинг 9 12 Команда DROP DATABASE
Приложение dropdb
Листинг 9 13 Использование команды dropdb
Сопровождение базы данных
Команда VACUUM
Листинг 9 14 Применение команды VACUUM к отдельной таблице
Листинг 9 15 Применение команды
Приложение vacuumdb

Листинг 9 16 Применение сценария
Листинг 9 17 Применение сценария
Документирование базы данных
Листинг 9 18 Создание комментария к таблице books
Чтение комментариев
Листинг 9 19 Вывод комментариев booktown=# \d+ books
Архивация и восстановление данных
Приложение pg_dump
Листинг 9 20 Использование приложения pg_dump
Листинг 9 21 Удаленный запуск pg_dump

Приложение pg_dumpall
Листинг 9 22 Использование команды pg_dumpall
Восстановление базы данных
Использование psql при восстановлении
Листинг 9 23 Восстановление базы данных
Использование pg_restore при восстановлении
Листинг 9 24 Восстановление архива приложением pg_restore
Когда следует архивировать и восстанавливать данные
Когда проводить архивацию
Когда проводить восстановление

Архивация файловой системы
Листинг 9 25 Архивация файловой системы PostgreSQL

Шифрование и секретность в Linux



Управление пользователями и группами
Управление пользователями
Просмотр списка пользователей
Таблица 10 1 Структура таблицы pg_shadow
Создание пользователей
Создание пользователей командой SQL CREATE USER
Листинг 10 1 Создание обычного пользователя
Листинг 10 2 Создание пользователя с правом CREATEDB
Листинг 10 3 Создание суперпользователя

Создание пользователей при помощи сценария createuser
Листинг 10 4 Создание пользователя сценарием createuser
Листинг 10 5 Интерактивное создание
Модификация пользователей
Листинг 10 6 Изменение пароля
Листинг 10 7 Предоставление прав суперпользователя
Листинг 10 8 Отзыв прав суперпользователя
Удаление пользователей
Удаление пользователей командой SQL DROP USER
Листинг 10 9 Удаление пользователя командой DROP USER

Удаление пользователей при помощи сценария dropuser
Листинг 10 10 Удаление пользователя приложением dropuser
Управление группами
Создание и удаление групп
Создание группы
Листинг 10 11 Создание группы
Листинг 10 12 Получение списка групп
Удаление группы
Листинг 10 13 Удаление группы
Назначение пользователей в группы

Включение пользователя в группу
Листинг 10 14 Включение пользователей в группу
Листинг 10 15 Проверка факта включения
Удаление пользователя из группы
Листинг 10 16 Удаление пользователя из группы
Предоставление привилегий
Управление доступом
Таблица 10 2 Привилегии доступа в PostqreSQL
Предоставление привилегий командой GRANT
Листинг 10 17 Предоставление привилегий пользователям

Листинг 10 18 Предоставление групповых привилегий
Ограничение прав командой REVOKE
Листинг 10 19 Отзыв прав
Представления при контроле доступа
Таблица 10 3 Таблица stock
Листинг 10 20 Управление привилегией
Листинг 10 21 Управление привилегией SELECT

Шифрование и секретность в Linux

PL/pgSQL
Поддержка PL/pgSQL
Включение поддержки PL/pgSQL при помощи psql
Листинг 11 1 Создание обработчика вызовов PL/pgSQL
Листинг 11 2 Включение поддержки
Включение поддержки PL/pgSQL приложением createlang
Листинг 11 3 Использование приложения

Листинг 11 4 Передача имени суперпользователя
Структура языка
Блоки
Листинг 11 5 Структура программного блока PL/pgSQL
Комментарии
Синтаксис комментариев
Листинг 11 6 Однострочный комментарий
Листинг 11 7 Блочный комментарий
Хороший стиль комментирования
Команды и выражения

Команды
Выражения
Листинг 11 8 Использование выражений
Листинг 11 9 Результат вызова функции a_function()
Листинг 11 10 Правильное использование временных меток
Переменные
Типы данных
Объявление
Листинг 11 11 Объявление переменной PL/pgSQL
Листинг 11 12 Объявление переменных

Листинг 11 13 Объявления переменных
Присваивание
Листинг 11 14 Инициализация переменной
Листинг 11 15 Использование команды SELECT INTO
Листинг 11 16 Вызов функции get_customer_id()
Листинг 11 17 Использование команды
Листинг 11 18 Вызов функции get_customer_name()
Листинг 11 19 Использование логической
Листинг 11 20 Вызов нового варианта
Аргументы

Листинг 11 21 Примеры вызовов функций
Листинг 11 22 Непосредственное
Листинг 11 23 Синтаксис использования ключевого слова ALIAS
Листинг 11 24 Псевдонимы PL/pgSQL
Листинг 11 25 Результат вызова функции triple_price()
Возвращение переменных
Листинг 11 26 Синтаксис команды RETURN
Атрибуты
Атрибут %TYPE
Листинг 11 27 Объявление переменной с атрибутом %TYPE

Листинг 11 28 Использование атрибута %TYPE
Листинг 11 29 Результат вызова функции get_author()
Атрибут %ROWTYPE
Листинг 11 30 Использование атрибута %ROWTYPE
Листинг 11 31 Вызов новой версии функции get_author()
Конкатенация
Листинг 11 32 Возвращение результата конкатенации
Листинг 11 33 Присваивание строковой
Передача управления
Условные команды

Команда IF/THEN
Листинг 11 34 Синтаксис команды IF/THEN
Листинг 11 35 Использование команды IF/THEN
Листинг 11 36 Результаты вызова функции stock_amount()
Команда IF/THEN/ELSE
Листинг 11 37 Синтаксис команды IF/THEN/ELSE
Листинг 11 38 Команда IF/THEN/ELSE
Листинг 11 39 Результат вызова функции in_stock()
Команда IF/THEN/ELSE/IF
Листинг 11 40 Команда IF/THEN/ELSE/IF

Листинг 11 41 Результаты вызова функции books_by_subject()
Циклы
Безусловный цикл
Листинг 11 42 Использование безусловного цикла
Листинг 11 43 Результат вызова функции square_integer_loop()
Цикл WHILE
Листинг 11 44 Использование цикла WHILE
Цикл FOR
Листинг 11 45 Пример использования цикла FOR
Листинг 11 46 Использование цикла FOR с атрибутом %ROWTYPE

Листинг 11 47 Результат выполнения функции extract_title()
Обработка ошибок и исключений
Таблица 11 1 Допустимые значения уровня ошибки
Листинг 11 48 Команда RAISE
Листинг 11 49 Результаты вызова raise_test()
Вызов функций
Листинг 11 50 Использование ключевого слова PERFORM
PL/pgSQL и триггеры
Листинг 11 51 Определение триггерной функции
Таблица 11 2 Специальные переменные в триггерных функциях

Листинг 11 52 Триггерная функция check_shipment_addition()
Листинг 11 53 Триггер check_shipment

Шифрование и секретность в Linux

JDBC
Построение драйвера JDBC для PostgreSQL
Использование драйвера PostgreSQL
Листинг 12 1 Поиск по имени класса
Листинг 12 2 Простое подключение JDBC
Использование JDBC
Принципы использования JDBC

Листинг 12 3 Создание объекта Statement
Листинг 12 4 Простая выборка в JDBC
Листинг 12 5 Простая вставка в JDBC
Нетривиальные возможности JDBC
Объект CallableStatement
Объект PreparedStatement
Листинг 12 6 Использование подготовленных команд в JDBC
ResultSetMetaData
Использование JDBC 363
Листинг 12 7 Использование объекта ResultSetMetaData

DatabaseMetaData
Листинг 12 8 Использование объекта DatabaseMetaData
Специфика использования JDBC с PostgreSQL
Листинг 12 9 Выборка данных из первой записи средствами JDBC

Шифрование и секретность в Linux

LXP
Циклы
Листинг 13 19 Простой цикл for
Листинг 13 20 Вывод элементов массива в цикле for
Таблица 13 1 Методы включения в LXP

Включение файлов LXP
Листинг 13 21 Включение документа LXP
Включение неструктурированных файлов
Листинг 13 22 Включение неструктурированных файлов
Включение файлов с разделителями
Листинг 13 23 Включение файла с разделителями
Включение файлов XML RSS и RDF
Листинг 13 24 Включение файла XML
Листинг 13 25 Включение файла RDF
Включение внешних источников данных

Листинг 13 26 Включение внешних данных
Включение данных SQL
Выбор базы данных
Таблица 13 2 Параметры подключения к базе данных
Листинг 13 27 Подключение к базе данных
Работа с полями
Листинг 13 28 Включение результатов запроса SQL
Листинг 13 30 Заполнение объекта LXP результатами выборки
Внешние теги
Листинг 13 31 Подстановка во внешнем теге с пустым блоком

Листинг 13 32 Использование вложенных тегов xtag
Преимущества LXP
Базовые возможности
Включение данных
Взаимодействие с PostgreSQL
Fingerless
Установка и настройка LXP
Установка LXP
Сценарий Ixpinstall sh
Листинг 13 1 Установка LXP сценарием Ixpinstall sh

Ручная установка
Ручная установка LXP состоит из трех этапов
Установка и настройка LXP 371
Листинг 13 2 Ручная установка файла liblxp so
Листинг 13 3 Ручная установка libpq so 2 2
Листинг 13 4 Ручная установка Ixp conf
Листинг 13 5 Настройка файла http conf для LXP
Настройка файла Ixp conf
Общие параметры
Параметры базы данных

Знакомство с разметкой LXP
Теги LXP
Листинг 13 6 Простой блок разметки LXP
Блоки LXP
Переменные и объекты LXP
Использование переменных и объектов
Аргументы CGI
Массивы CGI
Объекты непосредственных запросов SQL
Глобальные объекты LXP

Использование cookie в LXP
Листинг 13 8 Подстановка значения cookie
Листинг 13 10 Правильная подстановка переменных
Листинг 13 12 Использование тега
Условная логика
Теги if и ifnot
Тег if
Листинг 13 13 Использование тега if
Тег ifnot
Листинг 13 14 Использование тега ifnot

Вложение логических тегов
Листинг 13 15 Вложение логических тегов
Теги ifcookie и ifnotcookie
Листинг 13 16 Теги ifcookie и ifnotcookie
Теги else elseif и elseifnot
Листинг 13 17 Использование тега else

Шифрование и секретность в Linux

Команды PostgreSQL
COMMIT
Пример 1

COPY
Ограничения
Формат файлов
Примеры
CREATE AGGREGATE
Пример 1
CREATE DATABASE
Примеры
CREATE FUNCTION
Перегрузка функций

Примеры
CREATE GROUP
Примеры
CREATE INDEX
Построение индексов по полям
Функциональный индекс
Операторы и операторные классы
Таблица 14 1 Соответствие операториндекс
Примеры
CREATE LANGUAGE

Примеры
CREATE OPERATOR
Пример 1
СREATE RULE
Пример 1
ABORT
Пример 1
CREATE SEQUENCE
Примеры
CREATE TABLE

Пример 1
CREATE TABLE AS
Пример 1
CRЕАТЕ TRIGGER
Примеры
CREATE TYPE
Пример 1
CREATE USER
Пример 1
CREATE VIEW

Пример 1
CURRENT DATE
Пример 1
CURRENT_TIME
Пример 1
CURRENT_TIMESTAMP
Пример 1
ALTER GROUP
Примеры
CURRENT_USER

Пример 1
DECLARE
Пример 1
DELETE
Пример 1
DROP AGGREGATE
Пример 1
DROP DATABASE
Пример 1
DROP FUNCTION

Пример 1
DROP GROUP
Пример 1
DROP INDEX
Пример 1
DROP LANGUAGE
Пример 1
DROP OPERATOR
Пример 1
ALTER TABLE

Примеры
DROP RULE
Пример 1
DROP SEQUENCE
Пример 1
DROP TABLE
Пример 1
DROP TRIGGER
Пример 1
DROP TYPE

Пример 1
DROP USER
Пример 1
DROP VIEW
Пример 1
END
Пример 1
EXPLAIN
Примеры
FETCH

Примеры
ALTER USER
Примеры
GRANT
Примеры
INSERT
Примеры
LISTEN
Пример 1
LOAD

Пример 1
LОСК
Пример 1
MOVE
Примеры
NOTIFY
Транзакции
Повторные сигналы
Пример 1
REINDEX

Пример 1
RESET
Пример 1
REVOKE
Пример 1
BEGIN
Пример 1
ROLLBACK
Пример 1
SELECT

Примеры
SELECT INTO
Пример 1
SET
Примеры
SET CONSTRAINTS
Пример 1
SET TRANSACTION
Примеры
SHOW

Примеры
TRUNCATE
Пример 1
UNLISTEN
Пример 1
UPDATE
Пример 1
CLOSE
Пример 1
VACUUM

Пример 1
CLUSTER
Пример 1
COMMENT
Примеры

Шифрование и секретность в Linux


Приложение А Типы расширенных кодировок
Таблица А 1 Типы расширенных кодировок
Приложение Б Ключи командной строки postgres

Приложение В Двоичный формат команды COPY
Заголовок
Записи
Завершение
Приложение Г Внутренние переменные psql