Добавление ролей учетных записей в PostgreSQL

Добавление ролей учетных записей в PostgreSQL

В PostgreSQL роли используются для авторизации в кластере баз данных и в базах данных. Отдельные называются ролями учетных записей. Вы должны также создать схему в этой базе данных для всех ролей пользователя, которые будут иметь объекты в базе геоданных. Чтобы использовать PostgreSQL с ArcGIS схема должна иметь то же имя, что и роль учетной записи.

Можно выполнить инструмент Создать пользователя базы данных (Create Database User) для добавления роли учетной записи, которая может создавать таблицы и классы объектов. Инструмент создает роль учетной записи в кластере базы данных PostgreSQL, соответствующую схему в указанной базе данных и предоставляет публичные права доступа USAGE к новой схеме.

Если вы хотите создать роль учетной записи, не имеющую схемы и, следовательно, не имеющую возможности создания объектов в базе геоданных, можно использовать клиентское приложение PostgreSQL, такое как pgAdmin III или PL/pgSQL для создания роли в кластере базы данных PostgreSQL.

Вы можете также создать роли группы (group roles), к которым можно добавить роли пользователя (login roles). Затем можно определить права доступа для группы, которые будут применяться ко всем связанным ролям пользователя. Вы можете использовать инструмент Создать роль (Create Role) или скрипт для создания групповых ролей, или использовать SQL.

Примечание:

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

Добавление пользователя, который может создавать объекты базы данных

Вы можете запустить инструмент Создать пользователя базы данных (Create Database User) из ArcGIS for Desktop или вызвать инструмент в скрипте Python для создания пользователя базы данных, который может создавать таблицы, классы объектов и представления.

Чтобы запустить инструмент Создать пользователя базы данных (Create Database User) необходимо подключиться к базе данных с помощью роли со статусом superuser.

Использование инструмента Создать пользователя базы данных (Create Database User)
  1. Запустите ArcMap или ArcCatalog. с помощью роли со статусом superuser.
  2. Откройте инструмент Создать пользователя базы данных (Create Database User) .

Инструмент находится в группе инструментов Администрирование базы геоданных (Geodatabase Administration) набора Управление данными (Data Management).

Запустите скрипт Python

Чтобы создать пользователя с помощью скрипта, выполните следующие шаги:

    Создайте текстовый файл на клиентском компьютере ArcGIS и скопируйте следующий скрипт в файл.

Вы можете запустить скрипт на компьютере с установленным ArcGIS for Desktop (Standard или Advanced), ArcGIS for Server (Standard или Advanced) или ArcGIS Engine с дополнительным модулем Geodatabase Update.

В следующем примере запуск выполняется с сервера Windows, имя скрипта create_database_user.py. В кластере базы данных PostgreSQL pgdb7 создается роль учетной записи (geodata), проверяемая средствами базы данных, а в базе данных gisdata создается соответствующая схема. Пользователь не добавляется в групповую роль.

Это пример запуска скрипта на компьютере с Linux:

Подсказка:

Введите -h или --help в командной строке для вывода справки синтаксиса.

Теперь ваша база данных содержит пользователя, который может создавать таблицы.

Пользователь может создавать таблицы в базе данных или геоданных различными способами. Сведения о создании таблиц средствами ArcGIS см. в разделе Обзор добавления наборов данных в базу геоданных.

Создание учетных записей для просмотра и редактирования данных

Вы можете использовать SQL для создания ролей ученых записей для пользователей, которые не будут создавать данные. Если это делается в многопользовательской базе геоданных, необходимо изменить тип таблиц файла журнала, используемый в ней.

Также вы можете создать группы учетных записей, чтобы облегчить предоставление прав доступа к отдельным наборам данных для таких пользователей.

Изменение настроек файла журнала

Базы геоданных в PostgreSQL используют общие таблицы файлов журнала для обслуживания списков выбранных записей. Такие типы таблиц файлов журнала требуют, чтобы все пользователи имели схему, в которой создаются эти таблицы. Если вы хотите создать роли учетных записей, которые не могут создавать таблицы в базе геоданных, необходимо изменить настройки таблиц файлов журнала на использование пулов таблиц, принадлежащих пользователю sde. Описание пулов файлов журналов см. в разделе Опции файла журнала таблицы для базы геоданных в PostgreSQL.

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

Создание ролей

В следующих шагах описано, как использовать psql для создания групповых ролей, для облегчения управления доступом к данным, и создания ролей учетных записей, входящих в групповые роли.

  1. Войдите в psql в качестве пользователя с правами создания других ролей в кластер базы данных. Это может быть учетная запись со статусом superuser или запись с правами CREATEROLE.
  2. Сначала используйте команду CREATE ROLE для создания двух групп учетных записей: одну для пользователей, которые могут редактировать наборы данных (редакторы), а другую – для пользователей, которые могут только просматривать данные (читатели).

В данном примере роль учетной записи, editor1, создается с шифрованным паролем. Роль не имеет статуса superuser, не может создавать базы данных и не может создавать роли в кластере базы данных. Однако она является участником групповой роли издателей и наследует права этой групповой роли.

В данном примере роль учетной записи reader1 создается с шифрованным паролем. Роль не имеет статуса superuser, не может создавать базы данных и не может создавать роли в кластере базы данных. Однако она является участником групповой роли читателей и наследует все права этой роли.

Права USAGE позволяют участникам групп издателей и читателей получать доступ к данным в схеме geodata. Без этого geodata не предоставит права доступа к отдельным наборам данных участникам групповых ролей читателей и издателей.

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

Если набор данных существует в базе данных или геоданных, владелец может предоставить к нему права SELECT для группы читателей и права SELECT, INSERT, UPDATE и DELETE для группы редакторов. Инструкции см. в разделе Предоставление и отзыв прав доступа к наборам данных.

📎📎📎📎📎📎📎📎📎📎