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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    В данном примере файл подключения gdb.sde создан в директории /usr/connections. Подключено к базе данных markets кластера баз данных dserver от имени пользователя eng1.

    import arcpy
    arcpy.CreateDatabaseConnection_management (r'/usr/connections', "gdb.sde", "POSTGRESQL", "dserver", "DATABASE_AUTH", "eng1", "T!i569", "SAVE_USERNAME", "markets")

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

    В данном примере группе предоставлено право доступа для просмотра трех наборов данных.

    arcpy.ChangePrivileges_management ("/usr/connections/gdb.sde/markets.eng1.properties,markets.eng1.routes,markets.eng1.demo", "readers", "GRANT", "AS_IS")