PostgreSQL 中地理数据库的权限

权限用于确定用户有权对数据和数据库执行何种操作。应根据人员在组织中所执行的工作类型来分配权限。该人员是否为地理数据库的管理员? 他/她是否需要编辑或创建数据? 或者该人员是否仅需查询数据?

可在不同级别设置用户权限。本主题将介绍以下普通用户类型所需的数据库和数据集权限:数据查看人员、数据编辑人员、数据创建人员和地理数据库管理员。

PostgreSQL 中的各个数据库用户被称为登录角色。要基于用户所执行的常规任务对登录角色进行分组,您可以创建组角色,将登录角色添加到组角色,然后为组角色分配权限。

注:

默认情况下,将授予公共组角色 CONNECT 和 TEMP 数据库权限。如果撤消公共组所具有的这些权限,则需要为特定登录角色或组角色明确授予对数据库的 CONNECT 和 TEMP 权限。

可以使用连接到 PostgreSQL 数据库的某个管理应用程序(例如,pgAdmin)来管理用户权限。也可以使用 SQL 语句授予和撤消权限。

使用 ArcGIS 客户端授予地理数据库中数据集的权限和与之相关的撤消操作必须由数据所有者完成。

最低权限

下表列出了将为三个常规组(数据查看者、数据编辑者和数据创建者)中的每个组授予的权限以及地理数据库管理员(sde 登录角色)执行日常操作所需的最低权限。

用户类型所需权限用途

数据查看人员

在 sde 方案中授予 USAGE 权限。

此权限允许访问地理数据库。

针对数据查看者需要访问的数据,对包含其的所有其他方案授予 USAGE 权限。

此权限允许访问特定方案中的数据。

如果在要素类中使用 PostGIS 几何存储类型,则对数据查看者授予 public.geometry_columns 和 public.spatial_ref_sys 视图的 SELECT 权限。

访问 PostGIS 几何数据需要该权限。

如果在要素类中使用 PostGIS 地理存储,则对数据查看者授予 public.geography_columns 和 public.spatial_ref_sys 视图的 SELECT 权限。

访问 PostGIS 地理数据需要此权限。

对特定数据集授予 SELECT 权限

数据所有者必须对数据查看人员授予地理数据库中表和要素类的 SELECT 权限,以便其访问数据。

数据编辑人员

数据编辑者需要具有与数据查看者相同的权限,以及下列附加权限。

针对其他用户所拥有的数据集的 SELECT、INSERT、UPDATE 和 DELETE 权限。

如果使用 ArcGIS 为注册为传统版本化的要素类或表授予 SELECT、INSERT、UPDATE 和 DELETE 权限,则这些权限会自动授予到与之相关联的版本化视图中。用户使用 SQL 和版本化视图进行编辑时将需要这些权限。

数据所有者必须对编辑者授予编辑地理数据库中数据所需的权限。数据所有者可对编辑者授予这些权限的任意组合。

数据创建人员

数据创建人员需要具有与数据查看人员相同的权限,此外还需要此附加权限。

每个创建数据的登录角色都需要具备对自身方案的 AUTHORIZATION 权限。请注意,方案名称必须匹配登录角色名称,且组角色不能共享方案。

AUTHORIZATION 可确保该方案中创建的所有对象均为该用户所有。

地理数据库管理员(sde 登录角色)

对所有其他用户方案的 USAGE 权限

sde 用户压缩和升级地理数据库需要此权限。

PostgreSQL 权限表

创建或升级地理数据库所需的权限

sde 登录角色必须被授予超级用户身份才能创建地理数据库。要升级地理数据库,sde 登录角色必须具有访问所有其他用户的方案和选择地理数据库中所有数据集的权限。

sde 用户还需要超级用户身份才能使用 ArcGIS 工具断开数据库连接。因此,可在创建地理数据库后撤消超级用户权限,但前提是并不希望 sde 用户能够断开连接。