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

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

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

Более подробно:

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

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

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

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

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

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

  • Если набор данных хранится в многопользовательской базе геоданных, для предоставления и отзыва прав доступа используйте инструменты ArcGIS, перечисленные ниже. Это обеспечит предоставление доступа ко всем необходимым системным таблицам базы геоданных, связанным с набором данных.
  • Все классы объектов в наборе классов должны иметь одинаковые права доступа.
  • Если права предоставляются для доступа к классу объектов или таблице, которые используются в классе отношений, такие права должны обеспечивать доступ как к классу-источнику, так и к классу-адресату. Если правки, выполненные в классе-источнике, влияют на класс-адресат, необходимо предоставить права доступа на обновление, вставку и удаление для обоих классов объектов.

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

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

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

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

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

Для предоставления или отзыва прав доступа с помощью диалогового окна Права доступа в ArcGIS Pro выполните следующие шаги:

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

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

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

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

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

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

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

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

    При выборе Редактирование, права на Просмотр тоже будут предоставлены.

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

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

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

  1. Создайте подключение баз данных (файл .sde) с помощью функции CreateDatabaseConnection_management.

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

  2. Запустите функцию ChangePrivileges_management.