权限用于确定用户有权对数据和数据库执行何种操作。 应根据人员在组织中所执行的工作类型来分配权限。 该人员是否为地理数据库的管理员? 该人员是否需要编辑或创建数据? 或者该人员是否仅需查询数据?
用户权限可在不同级别进行设置并用于不同目的。 下面第一部分介绍了以下常见用户类型所需的最低数据库和数据集权限:数据查看人员、数据编辑人员、数据创建人员和地理数据库管理员。 第二部分列出了地理数据库管理员在 PostgreSQL 中创建和升级地理数据库所需的权限。 最后一部分提供了有关可能所需权限的其他信息的链接。
PostgreSQL 中的各个数据库用户被称为登录角色。 要基于用户所执行的常规任务对登录角色进行分组,您可以创建组角色,将登录角色添加到组角色,然后为组角色分配权限。
注:
默认情况下,将授予公共组角色 CONNECT 和 TEMPORARY 数据库权限。 如果撤消公共组角色所具有的这些权限,则需要为特定登录角色或组角色明确授予对数据库的 CONNECT 和 TEMPORARY 权限。
可以使用连接到 PostgreSQL 数据库的某个管理应用程序(例如,pgAdmin)来管理用户权限。 也可以使用 SQL 语句授予和撤消权限。
必须使用 ArcGIS 授予或撤消地理数据库中数据集的权限,并且必须由数据集所有者完成此操作。
此页面中列出的权限适用于 ArcGIS 支持的 PostgreSQL 和 PostgreSQL 数据库服务中的登录角色。
最低权限
下表列出了将为三个常规组(数据查看者、数据编辑者和数据创建者)中的每个组授予的权限以及地理数据库管理员(sde 登录角色)执行日常操作所需的最低权限。
用户类型 | 所需权限 | 用途 |
---|---|---|
数据查看人员 | 在 sde 方案中授予 USAGE 权限。 |
此权限允许访问地理数据库。 |
针对数据查看者需要访问的数据,对包含其的所有其他方案授予 USAGE 权限。 | 此权限允许访问特定方案中的数据。 | |
如果数据库使用 PostGIS 几何类型来存储空间数据,则角色需要对 PostGIS spatial_ref_sys 表和 geometry_columns 视图具有 SELECT 权限。 | 访问 PostGIS 几何数据需要该权限。 | |
如果数据库使用 PostGIS 地理类型来存储空间数据,则角色需要对 PostGIS spatial_ref_sys 表和 geography_columns 视图具有 SELECT 权限。 | 访问 PostGIS 地理数据需要此权限。 | |
对特定数据集授予 SELECT 权限。 | 数据所有者必须对数据查看人员授予地理数据库中表和要素类的 SELECT 权限,以便其访问数据。 | |
数据编辑人员 数据编辑人员需要具有与数据查看人员相同的权限,此外还需要这些附加权限。 |
对其他用户表的 INSERT、UPDATE、DELETE 权限 如果使用 ArcGIS 为注册为传统版本化的要素类或表授予 SELECT、INSERT、UPDATE 和 DELETE 权限,则这些权限会自动授予到与之相关联的版本化视图中。 用户使用 SQL 和版本化视图进行编辑时将需要这些权限。 |
数据所有者必须对编辑者授予编辑地理数据库中数据所需的权限。 |
数据创建人员 数据创建人员需要具有与数据查看人员相同的权限,此外还需要此附加权限。 |
每个创建数据的登录角色都需要具备对自身方案的 AUTHORIZATION 权限。 请注意,方案名称必须匹配登录角色名称,且组角色不能共享方案。 | 对用户的方案授予 AUTHORIZATION 权限可确保该方案中创建的所有对象均为该用户所有。 |
地理数据库管理员(sde 登录角色) |
对其自身名为 sde 的方案的 AUTHORIZATION 权限。 sde 登录角色需要对所有其他用户方案的 USAGE 权限。 |
地理数据库系统表、函数和过程均存储在 sde 方案中。 sde 用户需要对其他用户方案的 USAGE 权限,才能压缩地理数据库。 |
创建或升级地理数据库所需的权限
下表描述了 sde 登录帐户创建和升级地理数据库所需的权限。 该表列出了 ArcGIS 支持的每种 PostgreSQL 实施类型的权限。
创建地理数据库 | 升级地理数据库 | 注释 | |
---|---|---|---|
PostgreSQL | Login superuser 身份 | Superuser 身份 能够访问所有其他用户方案,并拥有对地理数据库中所有数据集的 SELECT 权限。 | 如果您不希望 sde 用户断开连接,则可以在创建或升级地理数据库后从 sde 撤销 superuser 身份。 |
Amazon Relational Database Service (RDS) for PostgreSQL | Login rds_superuser 身份 | Login rds_superuser 身份 还必须为 sde 用户授予在地理数据库中拥有数据的所有角色。 例如,如果角色 gisdata1 和 gisdata2 在地理数据库中拥有数据,则必须在升级之前为 sde 授予这些角色。 grant gisdata1 to sde; grant gisdata2 to sde; 升级地理数据库后,需要从 sde 撤销这些角色。 | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 rds_superuser。 |
Amazon Aurora (PostgreSQL-compatible edition) | Login rds_superuser 身份 | Login rds_superuser 身份 | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 rds_superuser。 |
Microsoft Azure Database for PostgreSQL | Login GRANT azure_pg_admin TO sde; | Login GRANT azure_pg_admin TO sde; | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 azure_pg_admin。 |
Google Cloud SQL for PostgreSQL | 必须向 sde 用户授予 cloudsqlsuperuser。 | 必须向 sde 用户授予 cloudsqlsuperuser。 | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 cloudsqlsuperuser。 |
其他权限
以下是在 ArcGIS 中执行其他可选任务所需的附加权限:
sde 用户需要 superuser 身份,才能在 PostgreSQL 中使用 ArcGIS 工具断开数据库连接。
- ArcGIS Insights 可能需要附加权限。 有关详细信息,请参阅 ArcGIS Insights 帮助中的所需数据库权限。
- ArcGIS Monitor 可能需要附加权限以访问并监控地理数据库。 有关详细信息,请参阅注册 PostgreSQL 数据库。