
- •Работа с субд PostgreSql
- •Работа с субд PostgreSql
- •Введение
- •1Установка PostgreSql
- •2Создание новой бд
- •2.1Создание новой бд
- •2.2Создание новой таблицы
- •2.3Создание связей между таблицами
- •3Создание индексов
- •4Доступ к PostgreSql из Java
- •4.1Соединение с PostgreSql
- •4.2Взаимодействие с бд
- •5Создание представлений
- •6Хранимые процедуры и Триггеры
- •6.1Хранимые процедуры
- •6.1.1Оператор Create Function языка pl/pgSql
- •6.1.2Создание хранимых процедур в pgAdmin III
- •6.1.3Вызов хранимых процедур в Java
- •6.2Триггеры бд
- •6.2.1Синтаксис определения триггера в PostgreSql
- •6.2.2Создание триггера в PgAdmin III
- •7Права доступа
- •Создание ролей;
- •7.1Создание ролей
- •7.2Назначение прав доступа
- •7.3Отмена прав доступа
- •7.4Проверка прав доступа
- •8Резервное копирование и восстановление бд
- •8.1Резервное копирование (BackUp) бд
- •8.2Восстановление (Restore) бд
- •8.3Создание sql-дампа бд
- •8.4Восстановление sql-дампа бд
- •8.5Восстановление sql-дампа средствами pgAdmin III
- •9Особенности взаимодействия субд access и PostgreSql
- •9.1Подготовка соединения PostgreSql с бд в Access
- •9.2Копирование таблиц Access в таблицы PostgreSql
- •9.3Подключение таблиц PostgreSql к бд в Access
- •10Администрирование PostgreSql
- •Литература
7Права доступа
В РostgreSQL понятие пользователь (USER) и понятие роль (ROLE) являются синонимами. В pgAdmin III для управления доступом к БД используется понятие роль. В версии 3.х права доступа можно предоставлять на таблицы БД, представления, на выполнение хранимых процедур и т.д. [9]. В версии 4.х права доступа можно предоставлять и на отдельные столбцы таблицы.
Процесс назначения прав доступа включает два этапа:
Создание ролей;
Предоставление созданным ролям прав доступа.
Ниже приводится описания выполнения каждого этапа средствами pgAdmin III.
7.1Создание ролей
Чтобы создать новую роль необходимо в окне Браузер объектов выделить раздел Роли входа, активизировать его контекстное меню и в нем выбрать пункт Новое правило (рисунок 6.1).
Рисунок 6.1 – Контекстное меню Роли входа
В открывшемся окне Новое правило (рисунок 6.2) вводится имя роли, пароль, и, если необходимо, дата и время окончания действия аккаунта.
Для примера БД Деканат ВУЗа пользователями могут быть декан и секретарь. Для них необходимо создать соответствующие роли входа: dean и secretary. После чего нажать ОК.
Рисунок 6.2 – Окно создания новой роли входа. Закладка Свойства
7.2Назначение прав доступа
Назначить права новым ролям можно с помощью пользовательских SQL-запросов. Ниже приведено описание способа создания SQL-запросов.
Выбрать любой объект соответствующей БД в окне Браузер объектов и нажать кнопку Выполнить пользовательские SQL запросы (рисунок 6.3).
Рисунок 6.3 – Вызов окна пользовательских запросов
В открывшемся окне Query ввести запросы на предоставление прав доступа ролям БД.
Нажать кнопку Выполнить запрос (рисунок 6.4).
Рисунок 6.4 – Окно ввода пользовательских SQL запросов Query
Если необходимо, выполнить сохранение запроса, нажав кнопку Сохранить файл окна Query (рисунок 6.5).
Рисунок 6.5 – Сохранение пользовательского SQL запроса
7.3Отмена прав доступа
Отмена прав доступа выполняется аналогичным образом через окно ввода пользовательских SQL запросов
7.4Проверка прав доступа
Проверить права можно, например, с помощью утилиты SQL Explorer из среды Delphi.
Предварительное условие: Драйвер PostgreSQL ODBC должен быть инсталлирован и Пользовательский DSN или Системный DSN должен быть создан (см. пункт 8.1). Должна быть создана БД «Деканат Вуза» и ее псевдоним.
Ниже приведено описание способа проверки прав доступа пользователя Секретарь с помощью утилиты SQL Explorer.
С помощью команды Database->Explorer из среды Delphi запустите утилиту SQL Explorer. Получите знакомое окно (рисунок 6.6).
Рисунок 6.6 – SQL Explorer
На вкладке Databases открывшегося окна выберите предварительно созданный псевдоним к БД (для примера БД «Деканат ВУЗа» этот псевдоним называется Example). Щелкните на нем два раза левой кнопкой мыши. В результате откроется окно Database Login, в котором необходимо ввести имя пользователя (роли) и пароль (рисунок 6.7).
Нажмите ОК
Рисунок 6.7 – Окно Database Login
В результате пользователь secretary получит доступ к БД (рисунок 6.8).
Рисунок 6.8 – SQL Explorer
Если данный пользователь попытается выполнить запрос на вставку или обновление записи в таблице Groups (закладка Enter SQL), то получит сообщение следующего вида (рисунок 6.9):
Рисунок 6.9 – Информационное сообщение
Запрос на выборку данных из таблицы Groups для данного пользователя будет выполнен нормально (рисунок 6.10).
Рисунок 6.10 – Выборка данных из таблицы Groups