权限用于确定用户有权对数据和数据库执行何种操作。 应根据人员在组织中所执行的工作类型来分配权限。 该人员是否为地理数据库的管理员? 他/她是否需要编辑或创建数据? 或者该人员是否仅需查询数据?
可在不同级别设置用户权限。本主题将介绍以下普通用户类型所需的数据库和数据集权限:数据查看人员、数据编辑人员、数据创建人员和地理数据库管理员。
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 权限,以便其访问数据。 | |
数据编辑人员 数据编辑者需要具有与数据查看者相同的权限,以及下列附加权限。 |
针对其他用户所拥有的数据集的 SELECT、INSERT、UPDATE 和 DELETE 权限。 如果使用 ArcGIS 为注册为传统版本化的要素类或表授予 SELECT、INSERT、UPDATE 和 DELETE 权限,则这些权限会自动授予到与之相关联的版本化视图中。 用户使用 SQL 和版本化视图进行编辑时将需要这些权限。 |
数据所有者必须对编辑者授予编辑地理数据库中数据所需的权限。 数据所有者可对编辑者授予这些权限的任意组合。 |
数据创建人员 数据创建人员需要具有与数据查看人员相同的权限,此外还需要此附加权限。 |
每个创建数据的登录角色都需要具备对自身方案的 AUTHORIZATION 权限。 请注意,方案名称必须匹配登录角色名称,且组角色不能共享方案。 | AUTHORIZATION 可确保该方案中创建的所有对象均为该用户所有。 |
地理数据库管理员(sde 登录角色) |
AUTHORIZATION 位于其自身名为 sde 的方案上。 sde 登录角色需要对所有其他用户方案的 USAGE 权限。 |
地理数据库系统表、函数和过程均存储在 sde 方案中。 sde 用户需要对其他用户方案的 USAGE 权限才能压缩地理数据库。 |
创建或升级地理数据库所需的权限
下表描述了 sde 登录帐户创建和升级地理数据库所需的权限,以及执行其他可选管理任务所需的权限。 该表列出了 ArcGIS 支持的每种 PostgreSQL 实施类型的权限。
创建地理数据库 | 升级地理数据库 | 其他管理员操作 | |
---|---|---|---|
PostgreSQL | 登录帐户和超级用户身份 | 超级用户身份能够访问所有其他用户方案,并拥有对地理数据库中所有数据集的 SELECT 权限。 | sde 用户需要超级用户身份才能在 PostgreSQL 中使用 ArcGIS 工具断开数据库连接。 如果您不希望 sde 用户断开连接,则可以在创建或升级地理数据库后从 sde 撤销超级用户身份。 |
Amazon Relational Database Service (RDS) for PostgreSQL | 登录帐户和 rds_superuser 身份 | 登录帐户和 rds_superuser 身份 还必须为 sde 用户授予在地理数据库中拥有数据的所有角色。 例如,如果角色 gisdata1 和 gisdata2 在地理数据库中拥有数据,则必须在升级之前为 sde 授予这些角色。 grant gisdata1 to sde; grant gisdata2 to sde; 升级地理数据库后,需要从 sde 撤销这些角色。 | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 rds_superuser。 但是,如果要使用创建数据库用户地理处理工具在数据库中创建数据所有者,请不要从 sde 撤消 rds_superuser 并以 sde 用户身份运行此地理处理工具。 |
Amazon Aurora (PostgreSQL-compatible edition) | 登录帐户和 rds_superuser 身份 | 登录帐户和 rds_superuser 身份 | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 rds_superuser。 但是,如果要使用创建数据库用户地理处理工具在数据库中创建数据所有者,请不要从 sde 撤消 rds_superuser 并以 sde 用户身份运行此地理处理工具。 |
Microsoft Azure Database for PostgreSQL | 登录 GRANT pgazureadmin TO sde; | 登录 GRANT pgazureadmin TO sde; | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 pgazureadmin。 |
Google Cloud SQL for PostgreSQL | 必须向 sde 用户授予 cloudsqlsuperuser。 | 必须向 sde 用户授予 cloudsqlsuperuser。 | 在 sde 用户创建或升级地理数据库后,您可以从 sde 撤销 cloudsqlsuperuser。 |