授予和撤销数据库和企业级地理数据库中的数据集权限

在 Standard 或 Advanced 许可等级下可用。

要让其他数据库用户查看或修改关系数据库或企业级地理数据库中任何数据的内容,那么您必须授予他们执行相应操作的权限。

抢先版本:

对于企业级地理数据库和关系数据库,数据所有者将由在使用 ArcGIS 客户端中的工具创建数据集时所使用的数据库连接中指定的用户确定。 数据集是数据库或企业级地理数据库中的任意要素类、表或视图,以及企业级地理数据库中的要素数据集。

数据集所有者可以使用权限对话框、更改权限地理处理工具或者以 Python 脚本创建的 ChangePrivileges_management 函数指定用户或组对某一特定数据集拥有哪些权限。

您可以授予选择数据的权限,这意味着用户可以读取和选择数据集的内容,但不能修改内容。 还可以授予用户更新、插入以及删除权限,这样用户便可修改数据集的内容。

下列规则适用于授予和撤消 ArcGIS 中的数据库或企业级地理数据库中数据集的权限:

  • 仅表所有者可更改数据集上的权限。
  • 仅表所有者可删除数据集或更改其方案定义;因此即使其他用户已被授予了插入、更新以及删除数据集的权限,也无法更改方案。
  • 当向某个用户授予插入、更新或删除权限时,则还必须授予选择权限。 用户必须能够读取数据集才能对其进行编辑。
  • dbo 和 db_owner 角色不会出现在 Microsoft SQL Server 数据库权限对话框的用户/角色列表中。 这些用户自动拥有授予数据库中的所有数据的权限。 权限因角色而异,并且无法撤消这些权限。
  • 已授予数据库超级用户状态的 PostgreSQL 登录角色或组将不会出现在权限对话框的用户/角色列表中。 这些用户自动具有对所有数据的完整权限,并且您无法撤消这些权限。
  • 使用权限对话框一次只能更改一个数据集上的用户权限。 要一次更改多个数据集上的权限,可以改用更改权限地理处理工具或 ArcPy 函数。
  • 撤消权限需要对数据集应用独占锁。 如果其他用户已连接到该数据集,则您无法撤消权限。
  • 您不能使用 ArcGIS 来授予或撤销云数据仓库中表的权限。

以下规则仅适用于授予和撤消企业级地理数据库中数据集的权限:

  • 当数据集位于企业级数据库中时,使用下方列出的 ArcGIS 工具授予和撤消权限。 这确保用户可以访问与数据集关联的所有必要的地理数据库系统表。
  • 要素数据集中的所有要素类必须已应用相同的权限。
  • 为参与关系类的要素类或表授予权限后,必须为源类和目标类授予这些权限。 如果对源要素类所做的编辑将影响目标要素类,则必须授予对这两个要素类的更新、插入或删除权限。

    如果源要素类和目标要素类在同一要素数据集中,那么由于授予的权限都在要素数据集级别,使得二者具有同一组权限。 然而,如果源类或目标类不在同一要素数据集中,则必须确保为源类和目标类授予适当的权限。 如果关系类被属性化或具有多对多基数,则在向源类分配权限时,权限将被自动传递至中间表(而非目标类)。

  • 如果数据集未注册为版本,则可使用权限对话框分别授予和撤消更新、插入和删除的权限。 例如,您可以授予某个用户选择和更新权限,这使该用户能够打开数据集并更改现有要素但不允许该用户添加新要素或删除现有要素。
  • 如果已将数据集注册为传统版本,则允许用户修改数据集(更新、插入和删除)的权限必须成组授予和撤消。
  • 如果已将数据集注册为传统版本化,则地理数据库管理员必须具有该数据集的完整权限。 因此,您无法撤消地理数据库管理员对这些数据集的权限。
  • 注册为分支版本的数据集仅可通过 Web 要素图层进行编辑,并且通过 Web 要素图层上的设置来控制对数据的访问。 因为仅数据集所有者才能发布分支版本化数据,因此无法将地理数据库中数据的权限授予其他数据库用户。

使用下列方法之一授予或撤销您所拥有的数据集的权限:

  • 权限对话框 - 使用权限对话框时,可查看用户或组具有的特定数据集的权限。 还可以一次向多个用户或组授予数据集权限。
  • 更改权限工具 - 使用更改权限地理处理工具时,可向用户或组授予多个数据集的权限。
  • Python 脚本 - 可通过已安装 ArcGIS Server 的计算机运行 Python 脚本。 权限可在多个数据集上进行更改。

使用“权限”对话框。

按照以下步骤使用 ArcGIS Pro 中的权限对话框授予或撤销权限:

  1. 连接到关系数据库或企业级地理数据库,该数据库包含您所拥有并想要授予或撤销其权限的数据。
  2. 右键单击数据集,然后单击权限
  3. 如果想要为之更改权限的用户或角色在列表中,则可以选中或取消选中复选框来授予或撤消权限,然后单击确定应用更改。
    注:

    如果取消选中所有权限框,则将从列表中移除用户或角色。

  4. 如果用户或角色不在列表中,请执行以下步骤:
    1. 单击添加用户打开用户/角色对话框。
    2. 如果您对数据库具有查看数据库中所有用户和角色的权限,则可以选中用户或角色名称旁边的数据库用户或角色复选框以添加该用户或角色。 否则,输入想要授予权限的数据库用户、数据库角色、操作系统登录账户或 Windows 组的名称。
    3. 单击确定关闭用户/角色对话框。
    4. 选中每个新用户或角色所需的权限对应的框,然后单击确定

使用更改权限工具

您可以使用更改权限工具授予或撤消您所拥有的数据集权限。 该工具位于“数据管理”工具箱的“地理数据库管理”工具集中。

您可以使用此工具同时更改多个数据集的用户或组的权限。 同一权限将授予至所有指定数据集。

更改权限工具并不会显示用户可能具有的任何现有数据集权限。 同样,插入、更新和删除权限必须作为一组进行授予,不可单独授予。

  1. 以您想要授予或撤消权限的数据集所有者身份连接到企业级地理数据库或关系数据库。
  2. 打开更改权限工具。
  3. 浏览至数据库连接并选择数据集。
  4. 输入要更改数据集权限的用户或群组的名称。
  5. 使用查看编辑下拉列表选择想要向特定用户或群组授予的权限。

    当您选择编辑时,必须也授予查看权限。

  6. 单击确定以运行工具。

使用 Python 脚本

要使用 Python 脚本授权或撤销所拥有的数据集的权限,则可使用 ChangePrivileges_management 函数。

  1. 使用 CreateDatabaseConnection_management 函数创建数据集连接(.sde 文件)。

    必须以数据集所有者身份连接并将用户名随文件一同保存。

  2. 运行 ChangePrivileges_management 函数。