Предоставление и отзыв прав доступа к наборам данных в базах данных и многопользовательских базах геоданных

Доступно с лицензией Standard или Advanced.

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

Более подробно:
Для многопользовательских баз геоданных и баз данных владелец данных определяется пользователем, который указан в подключении к базе данных, которое используется при создании класса объектов или таблицы с помощью инструментов в клиентах ArcGIS.

Как владелец набора данных вы можете использовать диалоговое окно Права доступа, инструмент геообработки Изменить права доступа или функцию ChangePrivileges_management скрипта Python, чтобы задать права доступа для пользователя или группы пользователей к тому или иному набору данных.

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

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

  • Только владелец таблицы может изменять права доступа к набору данных.
  • Только владелец таблицы может удалить набор данных или изменить его определение схемы; поэтому, даже если другому пользователю будут предоставлены права на вставку, обновление и удаление набора данных, изменить схему он не сможет.
  • При предоставлении пользователю права на вставку, обновление или удаление, необходимо также разрешить ему выбор. Прежде чем пользователь сможет изменять набор данных, он должен получить доступ для его чтения.
  • Роли dbo и db_owner не отображаются в списке Пользователь/роль в диалоговом окне Права доступа для баз данных Microsoft SQL Server. Эти пользователи автоматически получают права доступа ко всем данным в базе данных. Эти права могут отличаться, согласно роли, но вы не можете их отозвать.
  • Роли или группы PostgreSQL, которым был предоставлен статус superuser на доступ к базе данных, не будут отображаться в списке Пользователь/роль диалогового окна Права доступа. Эти пользователи автоматически получают полные права доступа ко всем данным, которые невозможно отозвать.
  • С помощью диалогового окна Права доступа одновременно можно изменять права доступа пользователей только к одному набору данных. Чтобы изменить права доступа к нескольким наборам данных одновременно, используйте инструмент геообработки Изменить права доступа или функцию Python.
  • Для отмены прав доступа требуется полная блокировка набора данных. Если кто-либо еще подключен к этому набору данных, вы не сможете выполнить отмену прав доступа.

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

  • Все классы объектов в наборе классов должны иметь одинаковые права доступа.
  • Если права предоставляются для доступа к классу объектов или таблице, которые используются в классе отношений, такие права должны обеспечивать доступ как к классу-источнику, так и к классу-адресату. Если класс-источник и класс-адресат находятся в одном наборе классов, они имеют одинаковый набор прав доступа, так как права предоставляются на уровне набора классов объектов. Однако если класс-источник и класс-адресат находятся в разных наборах пространственных данных, необходимо предоставить требуемые права доступа как для класса-источника, так и для класса-адресата. Если класс отношений является приписанным или имеет кардинальность многие-ко-многим, при предоставлении прав доступа классу-источнику они автоматически передаются промежуточной таблице.
  • Если набор данных не зарегистрирован, как версионный, можно предоставлять и отзывать права доступа для обновления, вставки и удаления данных по отдельности с помощью диалогового окна Права доступа. Например, можно предоставить пользователю права на выбор и обновление, которые позволят ему подключаться к набору данных и изменять существующие объекты, однако добавлять новые объекты или удалять существующие объекты он не сможет.
  • Если набор данных зарегистрирован как версионный с традиционными версиями, права доступа, которые позволяют пользователю изменять набор данных (выполнять обновление, вставку и удаление), должны предоставляться и отзываться в качестве группы.
  • Если набор данных зарегистрирован для традиционных версий, администратор базы геоданных должен получить полные права доступа к нему. Поэтому права администратора базы геоданных на доступ к таким наборам данных отозвать невозможно.
  • Наборы данных с сервис-ориентированными версионными данными можно редактировать только через векторные веб-слои и доступ к данным определяется настройками векторного веб-слоя. Поскольку только владелец набора данных может публиковать данные сервис-ориентированных версий, нет необходимости предоставлять права доступа к данным базы геоданных другим пользователям базы данных.

Используйте один из следующих методов предоставления или отзыва прав доступа к наборам своих данных:

  • Диалоговое окно Права доступа – вы можете посмотреть, какие права доступа к определенному набору данных имеет пользователь или группа, с помощью диалогового окна Права доступа. Кроме того, вы можете за один раз предоставить права доступа к набору данных сразу нескольким пользователям или группе.
  • Инструмент Изменить права доступа – вы можете предоставить права доступа к нескольким наборам данных пользователю или группе с помощью инструмента Изменить права доступа.
  • Скрипт Python—вы можете запустить скрипт Python на компьютерах, где установлен ArcGIS Server. Права доступа можно изменять для нескольких наборов данных.

Использование диалогового окна Права доступа

  1. Подключитесь к базе данных или базе геоданных, в которой находятся данные, владельцем которых вы являетесь и для которых требуется предоставить или отозвать права доступа.
  2. Щелкните правой кнопкой мыши набор данных, а затем щелкните Права доступа.
  3. Если пользователь или роль, для которых необходимо изменить права доступа, уже находится в списке, поставьте или снимите отметки в окошках, чтобы предоставить или отозвать соответствующие права доступа, а затем нажмите OK, чтобы эти изменения вступили в силу.
    Примечание:

    Если снять все отметки, соответствующие правам доступа, пользователь или роль будут удалены из списка.

  4. Если пользователь или роль отсутствуют в списке, выполните следующие действия.
    1. Нажмите Добавить пользователя, чтобы открыть диалоговое окно Пользователь/роль.
    2. При наличии прав доступа к базе данных для просмотра всех пользователей и ролей, можно выбрать пользователей или роли базы данных, которые требуется добавить из этого списка, установив отметки рядом с их именами. В противном случае введите имя пользователя базы данных, роли базы данных, входа операционной системы или группы Windows, которым необходимо предоставить права доступа.
    3. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Пользователь/роль.
    4. Установите отметки, соответствующие правам доступа, которые должны быть предоставлены каждому новому пользователю или роли, и нажмите ОК.

Использование инструмента Изменить права доступа

Вы можете использовать инструмент Изменить права доступа для предоставления или отзыва прав доступа на наборы данных, владельцем которых вы являетесь. Инструмент находится в группе инструментов Администрирование базы геоданных набора Управление данными.

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

  1. Подключитесь к базе геоданных или базе данных как владелец наборов данных, к которым вы хотите предоставить или отозвать права доступа.
  2. Откройте инструмент Изменить права доступа.
  3. В подключении баз данных выберите наборы данных, на которые вы хотите изменить права доступа.
  4. Введите имя пользователя или группы, права доступа которых вы хотите изменить.
  5. Используйте ниспадающие списки Просмотр и Изменить для выбора прав доступа, которые вы хотите предоставить определенному пользователю или группе.

    Чтобы предоставить права на редактирование, необходимо также предоставить права для просмотра.

  6. Щелкните OK, чтобы запустить инструмент.

Использование скрипта Python

Чтобы хотите использовать скрипт Python для предоставления или отзыва прав доступа к набору данных, владельцем которого вы являетесь, можно использовать функцию ChangePrivileges_management.

  1. Создайте подключение баз данных с помощью функции CreateDatabaseConnection_management. Вы должны быть подключены как владелец наборов данных и сохранить это имя пользователя в файл подключения.
  2. Запустите функцию ChangePrivileges_management.