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

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

SQL оператор alter user изменяет некоторые характеристики существующего пользователя. Одновременно можно поменять несколько характеристик пользователя. Каждый пользователь имеет уникальное имя, которое, естественно, менять нельзя.

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

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

Пример. Задать для пользователя с именем GUEST стартовый файл S1:

alter user GUEST startup 'S1';

SQL оператор drop user удаляет существующее описание пользователя. Удаляемый пользователь задается своим именем.

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

drop user Имя_пользователя [cascade | restrict];

Аргументы:

Аргумент

Значение

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

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

cascade

Если задано ключевое слово cascade, то при удалении пользователя удалятся и все его объекты.

restrict

Если указано ключевое слово restrict и есть объекты удаляемого пользователя, то операция завершится с ошибкой.

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

Для аутентификации пользователя при входе в систему используется оператор connect. SQL-оператор connect задает имя пользователя, от имени которого будут посылаться последующие запросы. При выполнении этих запросов будут использоваться права данного пользователя. При удачном выполнении оператора connect запускается стартовый файл для указанного пользователя. Оператор connect изменяет имя пользователя, возвращаемого из встроенной переменной session_user.

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

connect user Имя_пользователя [identify [by] Пароль];

Аргументы:

Аргумент

Значение

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

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

Пароль

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

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

Профиль – некоторый набор ограничений, налагаемых на пользователей. В этот набор входят:

  • Время, когда разрешено регистрироваться на сервере;

  • Максимальное количество сеансов работы;

  • Общая продолжительность сеансов работы.

При нарушении ограничений пользователь не сможет зарегистрироваться на сервере и вести работу.

SQL оператор create profile создает новый профиль, который можно будет использовать при описании характеристик пользователей.

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

create profile Имя_профиля   [logtime Время_регистрации]   [sessions Количество_сессий]   [maxtime Время_сеансов];

Аргументы:

Аргумент

Значение

Имя_профиля

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

Время_регистрации

Задает разрешенное время для регистрации пользователей, использующих данный профиль. Время суток (24 часа) разбито на получасовые интервалы времени. Для указания времени, разрешенного для регистрации, необходимо 24 х 2 = 48 битов или 6 байтов. Время, разрешенное для регистрации, зависит от дня недели. Всего для задания этого времени необходимо 7 серий по 6 байтов. Время задается в виде символьной строки, в которой 16-ичными цифрами записываются задаваемые байты. Серии отделяются друг от друга знаком '-'. Первая серия байтов задает время, разрешенное для регистрации в понедельник, вторая - во вторник и т.д. Если время регистрации опущено, то регистрация разрешается в любое время.

Количество_сессий

Задает максимальное количество сессий, которое может провести пользователь, использующий данный профиль.

Время_сеанса

Задает максимальную суммарную продолжительность всех сеансов пользователя, использующего данный профиль.

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

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

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

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

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

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

Имя поля

Тип поля

Назначение

NAME

char(32)

Имя профиля.

MON

array(6)

Битовая маска – разрешенное время для регистрации пользователей (понедельник).

TUE

array(6)

Битовая маска – разрешенное время для регистрации пользователей (вторник).

WED

array(6)

Битовая маска – разрешенное время для регистрации пользователей (среда).

THU

array(6)

Битовая маска – разрешенное время для регистрации пользователей (четверг).

FRI

array(6)

Битовая маска – разрешенное время для регистрации пользователей (пятница).

SAT

array(6)

Битовая маска – разрешенное время для регистрации пользователей (суббота).

SUN

array(6)

Битовая маска – разрешенное время для регистрации пользователей (воскресенье).

MAXSESS

long

Максимальное количество сессий, которое может провести пользователь, использующий данный профиль.

MAXTIME

double

Максимальная суммарная продолжительность всех сеансов пользователя, использующего данный профиль.

Пример. Создать профиль с именем prof1. Дать разрешение для регистрации с 8.00 до 24.00 в будний день. Максимальное количество сеансов – 300:

сreate profile prof1 logtime '0000FFFFFFFF-0000FFFFFFFF-0000FFFFFFFF-0000FFFFFFFF-00FFFFFFFF-00000000000-000000000000' sessions 300;