Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Izmenennye_Lektsii_po_RISu.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
600.58 Кб
Скачать

Блокировка кортежей.

ALTER TABLE имя_таблицы LOCK MODE (ROW)

Блокировка страниц.

ALTER TABLE имя_таблицы LOCK MODE (PAGE)

Требования к безопасности субд.

  1. Данные в любой таблице должны быть доступны не всем, а некоторым пользователям.

  2. Одним разрешено обновлять, другим только выбирать.

  3. Некоторые таблицы должны разрешать доступ только к некоторым столбцам.

  4. Некоторым пользователям должен быть запрещен доступ через запросы к таблицам, но разрешен доступ к этим же таблицам в диалоге с прикладной программой.

Существуют привилегии доступа:

  • К базе данных

  • К отношению.

Привилегии к БД:

  • CONNECT – открытие, выполнение запросов и создание индексов для временных таблиц.

  • RESOURSE – все привилегии CONNECT + создание, изменение постоянных таблиц и индексов.

  • DBA – все права admin.

Предоставление привилегий:

GRANT {CONNECT | RESOURSE | DBA} TO {PUBLIC | список_пользователей}.

Отмена привилегий:

REVOKE {-//-} FROM {-//-}.

Привилегии доступа к отношению.

  • SELECT

  • DELETE

  • INSERT

  • UPDATE

  • INDEX – создание индексов на атрибутах отношения БД пользователя, имеющего привилегию RESOURSE. Создание индексов на атрибутах временного отношения для пользователя, имеющего привилегию CONNECT.

  • ALTER – право на изменение отношения.

Назначение привилегий:

GRANT привилегии_отношенния

ON имя_отношенния [(атр.1, …, атр.k)]

TO {PUBLIC | список_польз.| список_ролей }

Привилегии_отношенния:

SELECT [(атр.1, …, атр.k)],

INSERT, DELETE, ALTER,

UPDATE [(атр.1, …, атр.k)],

INDEX, ALL, [PRIVILEGES].

Отмена привилегий:

REVOKE TO привилегии_отн.

ON имя_отн. [ PUBLIC | спис_польз | список_ролей ].

Существуют системные отношения.

Systables – хранит информацию об именах отношений и их уникальных номерах tabid.

Systabauth – фиксируются привилегии на отношения с уникальными номерами tabid.

Syscolaunt – фиксируются привилегии на атрибуты с уникальными номерами colno.

SELECT *FROM systabaunt

Where tabid = ( SELECT tabid FROM systables WHERE tabname = “преподаватель”).

Результат:

Grantor (кто)

Grantee (кому)

Tapid

Tabauth(какие парва)

USER

USER1

101

s u - i - x - -

USER

USER2

101

s - - i d x - -

USER

PUBLIC

101

s - - i - x - -

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

Таблица syscolaunth содержит tabid, colno, colaunth.

Таблица syscolaumns содержит tabid, colno, colname.

Организация доступа к бд через прикладную программу.

  1. Создание пользователя (CREATE USER имя_польз.).

  2. Создание ролей (CREATE ROLE имя_роли) и определение прав для каждой из роли(GRANT привилигерованное_отнош. TO имя_роли).

  3. Разработчик одному из пользователей дает права администратора.

  4. Администратор регистрирует имя пользователя и пароль.

  5. Администратор через спец модуль программы каждому пользователю присваивает роль для работы в программе (GRANT ROLE имя_роли TO имя_польз.).

  6. Если, при запуске программы, введенные имя и пароль совпадают с зарегистрированными, то определенная раннее для этого пользователя роль, становится активной.

  7. В соответствии с этой ролью разрешается работать с набором модулей и таблицами БД.

  8. При завершении работы с программой, роль перестает быть активной, тем самым запрещается пользователю работать с БД.

В СУБД Informix блокировка реализуется через механизм замков, поставленных на кортеж или страницу. Существует:

  1. Исключающий (используется при обновлении или удалении данных). Может быть поставлен только один.

  2. Разделяемый (ставится при чтении на данные, не закрытые исключительным замком). Можно поставить несколько.

  3. Модифицируемый (ставится при чтении с последующей модификацией). Перед выполнением операции модификации этот замок меняется на исключительный.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]