Учебное руководство: Начало работы с базами геоданных в PostgreSQL
В этом учебном руководстве приведен пример начала использования многопользовательской базы геоданных в PostgreSQL 9.0.2-1 на сервере Windows. Подразумевается, что вы уже установили ArcGIS for Desktop и ArcGIS for Server.
Установка и конфигурация PostgreSQL
В этом упражнении используется пакет установки PostgreSQL, загруженный с портала Esri Customer Care. После установки PostgreSQL настройте кластер базы данных для приема удаленных подключений, отредактировав файл pg_hba.conf.
Загрузите и установите PostgreSQL.
- Загрузите пакет установки PostgreSQL (в данном случае, postgresql 9.0.2-1 windows x64) с портала Esri Customer Care.
- Запустите исполняемый файл на сервере Windows, где вы хотите установить PostgreSQL.
Помимо настроек опций локализации и кодировки символов для других языков, кроме английского, можно использовать значения по умолчанию, предлагаемые мастером установки.
Во время установки необходимо задать пароль для суперпользователя postgres. Запомните этот пароль, поскольку он является паролем администратора базы данных для кластера и потребуется позже, в этом упражнении.
При первоначальной установке PostgreSQL вы можете подключиться к нему только с локального сервера. Чтобы разрешить подключения с других компьютеров сети, необходимо отредактировать файл pg_hba.conf.
- В текстовом редакторе откройте файл pg_hba.conf из директории data в PostgreSQL.
По умолчанию, она находится в C:\Program Files\PostgreSQL\9.0\data.
- Укажите IP-адреса клиентов, которым вы хотите разрешить подключение к кластеру базы данных.
В следующем примере всем адресам и всем пользователям сети предоставлен доступ к кластеру базы данных:
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPV4 local connections: host all all 0.0.0.0/0 md5 # IPV6 local connections: host all all ::/0 md5
Чтобы еще больше обезопасить кластер базы данных, можно запретить доступ для определенных IP-адресов или диапазонов IP-адресов, указать базу данных или список баз данных, к которым предоставляется доступ, или выбрать пользователей, которым разрешено подключение. Также можно явным образом запретить доступ по IP-адресам или диапазонам IP-адресов. Более подробная информация и примеры находятся в документации PostgreSQL.
- Перезапустите сервис PostgreSQL.
Это можно сделать, щелкнув правой кнопкой мыши на службе postgresql-x64 в списке Службы (Windows Services) и выбрав Перезапустить (Restart).
Поместите библиотеки ST_Geometry в папку lib в PostgreSQL
Создание базы геоданных в PostgreSQL зависит от наличия библиотеки ST_Geometry. Необходимо расположить соответствующую библиотеку в папке lib в директории PostgreSQL перед созданием базы геоданных. Библиотеки ST_Geometry можно найти в папке DatabaseSupport клиентского приложения ArcGIS.
Поскольку предполагается, что PostgreSQL установлен на сервер Windows, используйте библиотеку ST_Geometry из папки Windows64.
- В Проводнике Windows найдите библиотеку ST_Geometry для Windows в директории установки клиента ArcGIS.
По умолчанию ArcGIS for Desktop на 64-разрядных ОС Windows находится в C:\Program Files (x86)\ArcGIS\Desktop<номерверсии>\DatabaseSupport\PostgreSQL\Windows64; на 32-разрядных - в C:\Program Files\ArcGIS\Desktop<номерверсии>\DatabaseSupport\PostgreSQL\Windows64.
- Скопируйте st_geometry.dll из этой папки.
- Найдите папку lib в PostgreSQL на сервере базы данных и скопируйте в нее библиотеку.
В Windows по умолчанию она находится в C:\Program Files\PostgreSQL\9.0\lib.
Поместите файлы клиента PostgreSQL на компьютер клиента ArcGIS
Чтобы подключиться из ArcGIS и создать базу геоданных, необходимо установить клиентские библиотеки на клиентском компьютере.
- Загрузите файлы клиентов PostgreSQL с портала Esri Customer Care.
Для подключения из ArcGIS for Desktop необходимы 32-разрядные файлы. Для подключения из ArcGIS for Server, необходимы 64-разрядные файлы. Если на одном компьютере установлены оба клиента ArcGIS, вам потребуются оба набора библиотек.
- Поместите соответствующие библиотеки в папку bin клиента ArcGIS.
- Для ArcGIS for Desktop скопируйте 32-разрядные файлы в папку C:\Program Files (x86)\ArcGIS\Desktop<номер_версии>\bin (64-разрядные ОС) или в папку C:\Program Files\ArcGIS\Desktop<номер_версии>\bin (32-разрядные ОС).
- Для ArcGIS for Server скопируйте 64-разрядные файлы в папку C:\Program Files\ArcGIS\Server\bin.
Примечание:Библиотеки должны быть размещены на всех клиентских компьютерах с ArcGIS, с которых вы планируете подключаться к базе данных.
- Перезапустите ArcGIS for Server, если он работает, чтобы он распознал файлы, помещенные в папку bin.
Создание базы геоданных
Можно использовать инструмент геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) для создания базы данных, пользователя и схемы sde и базы геоданных в PostgreSQL.
- Запустите ArcMap и откройте окно Поиск (Search).
- Щелкните на фильтре Инструменты (Tools).
- Введите Создать многопользовательскую базу геоданных в поле и щелкните кнопку поиска.
- Щелкните на ссылку Создать многопользовательскую базу геоданных (Управление данными), чтобы открыть инструмент.
- Введите информацию, необходимую для подключения к кластеру базы данных PostgreSQL в качестве суперпользователя postgres, чтобы создать базу данных и пользователя sde. Также, необходимо указать файл ключей лицензии, который был создан при авторизации экземпляра ArcGIS for Server.
В этом примере PostgreSQL работает на сервере mypgserver, имя создаваемой базы данных fstutorial, а файл ключевых кодов авторизации находится в папке по умолчанию на компьютере с ArcGIS for Server. Также были указаны пароли для суперпользователя postgres и для пользователя sde. Имя табличного пространства оставлено пустым; это означает, что база данных будет создана в пространстве pg_default.
- Щелкните OK, чтобы запустить инструмент.
База данных, пользователь sde, схема sde и база геоданных будут созданы в PostgreSQL.
Создайте пользователя, которому будут принадлежать данные
Данные, хранящиеся в базе геоданных, должны принадлежать пользователям, отличным от sde. Используйте инструмент геообработки Создать пользователя базы данных (Create Database User) для создания пользователя в кластере базы данных PostgreSQL и схемы в новой базе данных.
Однако для создания пользователя сначала необходимо подключиться к базе геоданных как администратор базы данных (в данном случае, как суперпользователь postgres).
Создайте подключение к базе данных, выполнив вход как пользователь postgres.
- Разверните папку Подключения к базам данных (Database Connections) в дереве Каталога в ArcMap и дважды щелкните на Добавить подключение к базе данных (Add Database Connection).
Откроется диалоговое окно Подключение к базе данных (Database Connection).
- Введите информацию, необходимую для подключения к новой базе данных в качестве суперпользователя postgres.
В этом примере выполняется подключение к новой базе данных fstutorial из-под пользователя postgres:
Поскольку вы будете использовать этот файл подключения в инструменте геообработки, включите опцию Сохранить имя пользователя и пароль (Save user name and password). После запуска этого инструмента, следует либо отключить эту опцию в файле подключения, подключиться как другой пользователь или удалить файл подключения, чтобы не позволить другим пользователям, у которых есть доступ к этому файлу, подключаться к базе геоданных в качестве администратора.
- Нажмите ОК, чтобы создать подключение.
Новый файл подключения появится в папку Подключения к базам данных (Database Connections) в дереве Каталога.
Теперь можно запустить инструмент Создать пользователя базы данных.
- Щелкните на фильтре Инструменты (Tools) в окне Поиск (Search) в ArcMap.
- Введите Создать пользователя базы данных (Create Database User) в поле поиска и щелкните кнопку Поиск (Search).
- Щелкните на ссылке Создать пользователя базы данных (Управление данными), чтобы открыть инструмент.
- Перетащите новый файл подключения из дерева Каталога в текстовое поле Введите рабочую область базы данных в окне инструмента Создать пользователя базы данных.
- Введите имя нового пользователя в текстовом поле Пользователь базы данных и пароль в поле Пароль пользователя базы данных.
В этом примере в инструмент добавлен файл подключения, созданный ранее, а также введены имя пользователя (fstuser) и пароль. Поскольку роли в базе данных еще не созданы, имя роли не указано.
- Щелкните OK, чтобы запустить инструмент.
Новый пользователь и схема созданы в PostgreSQL, право USAGE автоматически предоставлено в схеме для роли public.
Подключитесь из-под этого нового пользователя
Теперь, когда у вас есть пользователь, который может добавлять данные в новую базу геоданных, подключитесь к ней из-под этого пользователя. Самый простой способ сделать это - изменить файл подключения, созданный ранее.
Откройте подключение к базе данных и измените имя пользователя и пароль.
- Щелкните правой кнопкой мыши на подключении к базе данных и выберите Свойства подключения.
- Измените Имя пользователя и Пароль, введя данные нового пользователя.
- Щелкните OK, чтобы подключиться из-под нового пользователя.
Теперь вы можете использовать это подключение для добавления данных в базу геоданных.