Доступно с лицензией Standard или Advanced.
Если требуется разрешить другим пользователям базы данных просматривать или изменять ее содержание, необходимо предоставить им соответствующие права доступа.
Вы можете использовать диалоговое окно Права доступа (Privileges), инструмент геообработки Изменить права доступа (Change Privileges) в ArcGIS for Desktop или функцию ChangePrivileges_management скрипта Python, чтобы задать, какими правами доступа будет обладать пользователь или группа пользователей к тому или иному набору данных.
Можно предоставить только права на выбор, при которых пользователю разрешается читать и выбирать, однако изменять содержание набора данных запрещено. Кроме того, могут предоставляться права доступа, позволяющие пользователю обновлять, вставлять и удалять данные, т. е. изменять содержание набора данных.
В отношении предоставления и отмены прав доступа к данным, находящимся в базе данных или базе геоданных, применяются следующие правила.
- Только владелец таблицы может изменять права доступа к ней.
- Только владелец таблицы может удалить ее или изменить ее определение; поэтому, даже если другому пользователю будут предоставлены права на вставку, обновление и удаление набора данных, изменить схему он не сможет.
- Если планируется предоставить пользователю право на вставку, обновление или удаление, необходимо также разрешить ему выбор. Прежде чем пользователь сможет изменять набор данных, он должен получить доступ для его чтения.
- Роли dbo и db_owner не отображаются в списке Пользователь/роль (User/Role) для баз данных SQL Server. Эти пользователи автоматически получают полные права доступа ко всем данным, которые невозможно отозвать.
- Роли или группы входа PostgreSQL, которым были предоставлены права привилегированного пользователя на доступ к базе данных, не будут отображаться в списке Пользователь/роль (User/Role). Эти пользователи автоматически получают полные права доступа ко всем данным, которые невозможно отозвать.
- С помощью диалогового окна Права доступа (Privileges) одновременно можно изменять права доступа пользователей только к одному набору данных. Чтобы изменить права доступа к нескольким наборам данных одновременно, используйте инструмент геообработки Изменить права доступа (Change Privileges) или функцию Python.
- Для отзыва прав доступа требуется монопольная блокировка набора данных, поэтому, если другой пользователь подключен к набору данных, отозвать права доступа пользователей к нему будет невозможно.
Следующие правила применяются только для предоставления и отзыва прав доступа к наборам данных базы геоданных:
- Все классы объектов в наборе классов должны иметь одинаковые права доступа для пользователей.
- Начиная с версии ArcGIS 10.1 при добавлении нового класса объектов либо встраивании сети или топологии в набор классов объектов существующие права пользователей автоматически предоставляют доступ к новому классу объектов, сети или топологии, чтобы обеспечить соответствие предоставленных прав доступа к набору классов объектов.
- Если права предоставляются для доступа к классу объектов или таблице, которые используются в классе отношений, такие права должны обеспечивать доступ к классу-источнику и классу-адресату. Если класс-источник и класс-адресат находятся в одном наборе классов, они имеют одинаковый набор прав доступа, так как права предоставляются на уровне набора классов объектов. Однако, если класс-источник и класс-адресат находятся в разных наборах пространственных данных, необходимо предоставить требуемые права доступа как для класса-источника, так и для класса-адресата. Если класс отношений имеет значение Приписанный (Attributed) или кардинальность Многие ко многим (Many to Many), при предоставлении прав доступа классу-источнику они автоматически передаются промежуточной таблице.
- Если набор данных не является версионным, можно предоставлять и отзывать права доступа для обновления, вставки и удаления данных по отдельности с помощью диалогового окна Права доступа (Privileges). Например, можно предоставить пользователю права на выбор и обновление, которые позволят ему подключаться к набору данных и изменять существующие объекты, однако добавлять новые объекты или удалять существующие объекты он не сможет.
- Если набор данных зарегистрирован как версионный, права доступа, которые позволяют пользователю изменять набор данных (выполнять обновление, вставку и удаление), должны предоставляться и отзываться в качестве группы.
- Если набор данных зарегистрирован как версионный, администратор базы геоданных должен получить полные права доступа к нему. Поэтому права администратора базы геоданных на доступ к версионным наборам данных отозвать невозможно.
Используйте один из следующих методов предоставления или отзыва прав доступа к наборам своих данных:
- Диалоговое окно Права доступа (Privileges) – вы можете посмотреть, какие права доступа к определенному набору данных имеет пользователь или группа, с помощью диалогового окна Права доступа (Privileges). Кроме того, вы можете за один раз предоставить права доступа к набору данных сразу нескольким пользователям или группе.
- Инструмент Изменить права доступа (Change Privileges) – вы можете предоставить права доступа к нескольким наборам данных пользователю или группе с помощью инструмента Изменить права доступа (Change Privileges).
- Скрипт Python – скрипты Python можно использовать с компьютеров с ОС Linux, на которых установлен ArcGIS for Server. Права доступа можно изменять для нескольких наборов данных.
Использование диалогового окна Права доступа (Privileges)
Диалоговое окно Права доступа (Privileges) открывается из контекстного меню подключения баз данных в дереве Каталог (Catalog). Это диалоговое окно позволяет вам выбирать из списка пользователей и группы для предоставления им прав доступа. Оно также позволяет предоставлять права доступа для обновления, вставки и удаления данных в отдельном наборе данных при условии, если этот набор данных не зарегистрирован как версионный.
- Запустите ArcMap или ArcCatalog и дважды щелкните по папке Подключение баз данных (Database Connections) в дереве Каталога.
- Подключитесь к базе данных или базе геоданных, в которой находятся данные, владельцем которых вы являетесь и для которых требуется предоставить или отозвать права доступа.
- Щелкните правой кнопкой мыши набор данных, укажите Управлять (Manage), а затем щелкните Права доступа (Privileges).
Откроется диалоговое окно Права доступа (Privileges).
- Если пользователь или роль, для которых необходимо изменить права доступа, уже находится в списке, поставьте или снимите отметки в окошках, чтобы предоставить или отозвать соответствующие права доступа, а затем нажмите OK, чтобы эти изменения вступили в силу.
- Если пользователь или роль отсутствуют в списке, выполните следующие действия.
- Нажмите кнопку Добавить (Add), чтобы открыть диалоговое окно Пользователь/роль (User/Role).
- При наличии прав доступа к базе данных для просмотра системной таблицы, в которой перечислены все ее пользователи и роли, можно выбрать пользователей или роли базы данных, которые требуется добавить из этого списка, установив флажки рядом с их именами. В противном случае введите имя пользователя базы данных, роли базы данных, входа операционной системы или группы Windows, которым необходимо предоставить права доступа. Чтобы указать несколько пользователей или групп, введите их имена, разделенные запятыми (без пробелов).
- Нажмите кнопку ОК, чтобы закрыть диалоговое окно Пользователь/роль (User/Role).
- Установите флажки, соответствующие правам доступа, которые должны быть предоставлены каждому новому пользователю или роли, и нажмите кнопку ОК.
Использование инструмента Изменить права доступа (Change Privileges)
Вы можете использовать инструмент Изменить права доступа (Change Privileges) в ArcGIS for Desktop для предоставления или отзыва прав доступа на наборы данных, владельцем которых вы являетесь. Этот инструмент можно найти в группе инструментов Администратор базы геоданных (Geodatabase Admin) набора инструментов Управление данными (Data Management).
С помощью этого инструмента вы можете изменять права доступа пользователей или групп сразу на несколько наборов данных. Необходимо помнить о том, что инструмент Изменить права доступа (Change Privileges) не показывает, какими правами доступа пользователь уже обладает на определенные наборы данных. Кроме того, права доступа ВСТАВИТЬ, ОБНОВИТЬ и УДАЛИТЬ должны предоставляться в наборе, не по отдельности.
- В ArcGIS for Desktop подключитесь к базе геоданных или базе данных как владелец наборов данных, на которые вы хотите предоставить или отозвать права доступа.
- Откройте инструмент Изменить права доступа (Change Privileges).
Этот инструмент вы найдете в группе инструментов Администрирование баз геоданных (Geodatabase Administration) набора Управление данными (Data Management).
- В подключении баз данных выберите наборы данных, на которые вы хотите изменить права доступа.
- Введите имя пользователя или группы, права доступа которых вы хотите изменить.
- Используйте ниспадающие списки Просмотр (View) и Изменить (Edit) для выбора прав доступа, которые вы хотите предоставить определенному пользователю или группе.
Для предоставления прав доступа для редактирования необходимо предоставить права доступа для просмотра.
- Щелкните OK, чтобы запустить инструмент.
Использование скрипта Python
Для предоставления или отзыва прав доступа на набор данных можно также использовать функцию ChangePrivileges_management скрипта Python.
- Сначала откройте подключение баз данных с помощью функции CreateDatabaseConnection_management. Вы должны быть подключены как владелец наборов данных и сохранить это имя пользователя в файл подключения.
В данном примере файл подключения gdb.sde создан в директории /usr/connections. Подключено к projdata экземпляра Informix от имени пользователя eng1.
import arcpy arcpy.CreateDatabaseConnection_management (r'/usr/connections', "gdb.sde", "INFORMIX", "PROJDATA", "DATABASE_AUTH", "eng1", "T!i569", "SAVE_USERNAME")
- Запустите функцию ChangePrivileges_management.
В данном примере группе предоставлено право доступа для просмотра трех наборов данных.
arcpy.ChangePrivileges_management ("/usr/connections/gdb.sde/projdata:eng1.properties,projdata:eng1.routes,projdata:eng1.demo", "readers", "GRANT", "AS_IS")