Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

5.6 Индексирование и упаковка таблиц, снятие провисшего захвата Индексирование таблицы

Утилита htindx64 позволяет выполнить индексирование постоянной части. Может применяться для таблиц, чьи индексы не были построены в результате упаковки (запуск утилиты htupdt64 со специальными параметрами) или удалены в процессе восстановления постоянной части (утилита htrepr64).

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

HTINDX64 [Ключи] имя_таблицы

Допустимые ключи:

Ключ

Значение

/D

Проверка места на диске.

/T

Путь на каталог временных файлов.

/P

Вывод проблемных записей в таблицу PROBLEM.

/R

Пароль для чтения.

/W

Пароль для записи.

Пример:

HTINDX64 /D FIO

В данном примере будет проиндексирована таблица FIO. Предварительно будет проверена достаточность места на диске для выполнения индексирования.

Упаковка таблицы (перенос журнала в постоянную часть)

Утилита htupdt64 позволяет выполнить упаковку таблицы (перенос журнала в постоянную часть) и/или построить индексы для постоянной части.

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

HTUPDT64 [Ключи] имя_таблицы

Допустимые ключи:

Ключ

Значение

/N

Индексы не строить.

/T

Путь на каталог временных файлов.

/P

Вывод проблемных записей в таблицу PROBLEM.

/R

Пароль для чтения.

/W

Пароль для записи.

Пример:

HTUPDT64 /N FIO

В данном примере будет упакована таблица FIO. Индексы строиться не будут.

Снятие провисшего захвата с записи таблицы

Утилита htunlk64 позволяет снять провисший захват с заданной записи таблицы. Захват провисает, если машина, на которой работает приложение, захватившее запись, аварийно выключается или зависает. Захваты снимаются автоматически при перезапуске сервера, однако, это не всегда возможно. Для разрешения этой коллизии и предназначена утилита.

HTUNLK64 имя_таблицы номер_записи

Допустимые ключи:

Параметр

Значение

имя_таблицы

Имя таблицы, задаваемое без расширения или с расширением .htb.

номер_записи

Целое число без знака, задаваемое в десятичном или в шестнадцатиричном (с префиксом 0x) виде. Правильность задаваемого номера записи не проверяется.

Пример:

HTUNLK64 FIO 1517

В данном примере будет снят захват на запись 1517 таблицы FIO.

5.7 Управление безопасностью Управление безопасностью

Управление безопасностью включает:

  • Создание/изменение/удаление пользователя;

  • Аутентификацию пользователя при входе в систему;

  • Создание/удаление роли;

  • Назначение/отзыв роли пользователю или другой роли;

  • Создание/удаление профиля безопасности;

  • Назначение/отмена права пользователю или роли;

  • Установка/изменение пароля на чтение/запись данных в таблицу;

  • Шифрация данных в таблицах;

  • Аудит действий пользователя.

Создание пользователя

По умолчанию в системе присутствует привилегированный пользователь HTADMIN. Пользователь HTADMIN имеет права на все действия в системе.

SQL оператор create user создает описание нового пользователя и указывает его характеристики.

Формат вызова:

create user Имя_пользователя profile Имя_профиля   [identify [by] Пароль] [startup Стартовый_файл];

Аргументы:

Аргумент

Значение

Имя пользователя

Задает имя пользователя. Имя пользователя должно содержать буквы и цифры, должно начинаться с буквы и должно быть не длиннее 31 символа. Имена пользователей должны быть уникальными и не должны совпадать с зарезервированными словами и с именами ролей.

Имя профиля

Задает имя профиля. Профиль с указанным именем должен быть создан оператором create profile.

Пароль

Задает пароль, который необходимо вводить при подключении пользователя.

Стартовый файл

Задает стартовый файл с SQL-скриптами, который будет выполняться при регистрации данного пользователя.

Для создания пользователя необходимо выполнение одного из условий:

  • Пользователь является администратором базы данных;

  • Пользователь получил право на создание пользователей (привилегия create user) с помощью оператора grant create user.

Перед созданием пользователя и после него вызываются триггеры, установленные оператором:

create trigger Имя_триггера for admin {before | after} create user...

В триггере create user переменная new (см. раздел 4.7 «Работа с триггерами») имеет следующую структуру:

Имя поля

Тип поля

Назначение

NAME

char(32)

Имя пользователя.

PASSWORD

char(32)

Пароль.

PROFILE

char(32)

Имя профиля.

STARTUP

char(32)

Имя стартового файла.

Пример. Создать пользователя GUEST с профилем prof1 и без пароля:

create user GUEST profile prof1;