所需数据库权限

Insights in ArcGIS Enterprise
Insights 桌面版
注:

Insights in ArcGIS EnterpriseInsights desktop 不支持数据库连接。

ArcGIS Insights 中,存在两种类型的数据操作:

  • 连接到关系数据库并浏览其内容(不使用数据缓存)。
  • 连接到关系数据库并浏览其内容(使用数据缓存)。

连接到关系数据库并浏览其内容(使用数据缓存)允许 Insights 创建并管理数据库中的临时表。

下表列出了连接到关系数据库并浏览其内容以及选择允许 Insights 进行数据缓存所需的最低权限。

注:

连接处于只读状态。 Insights 不允许在数据库中创建或编辑数据。

如果您不具有使用数据缓存所需的数据库权限,则数据将被复制到您部署的托管数据存储中。

Google BigQuery

BigQuery 中,权限通过角色应用至用户。 创建与 BigQuery 的数据库连接的用户必须具有基本角色(编辑者、所有者或查看者)的权限,或者具有自定义角色中的等效权限。

Microsoft SQL Server

操作类型所需权限用途

不使用数据缓存

CONNECT

此权限允许用户连接至数据库。

默认情况下,将为公共数据库角色授予数据库的 CONNECT 权限。 如果撤销公共数据库的此权限,则必须向特定角色及/或登录帐户明确授予数据库的 CONNECT 权限。

对其他用户表的 SELECT 权限

数据查看人员需要具有对要查看并查询的特定表的 select 权限。

如果您有权读取数据库中的所有表,则可为用户指定 db_datareader 数据库角色;否则,授予特定表和视图的 SELECT 权限。

使用数据缓存

注:

在使用数据缓存的情况下,连接还需要无数据缓存连接的权限。

对方案执行 ALTER 的权限

ALTER 权限允许 Insights 在用户方案中创建索引和管理临时表。

CREATE TABLE

CREATE TABLE 权限允许 Insights 在用户方案中创建临时表或视图。

示例

以下 SQL 代码是关于如何为 SQL Server 数据库授予权限的示例。 数据库管理员可对这些示例进行自定义,以向其组织中的数据库用户授予权限。

向读写用户授予权限:

use <databaseName>;
GO

GRANT CREATE TABLE TO <userName>;
GRANT ALTER ON SCHEMA::dbo TO <userName>;

EXEC sp_addrolemember N'db_datareader', N'<userName>';
EXEC sp_addrolemember N'db_datawriter', N'<userName>';
GO

在数据库级别向只读用户授予权限:

use <databaseName>;
GO

EXEC sp_addrolemember N'db_datareader', N'<userName>';
GO

向特定表上的只读用户授予 SELECT 权限:

use <databaseName>;
GO

GRANT SELECT ON OBJECT::<schema>.<tableName1> TO <userName>;
GRANT SELECT ON OBJECT::<schema>.<tableName2> TO <userName>;

Oracle

操作类型所需权限用途

不使用数据缓存

CONNECT 角色或 CREATE SESSION

CONNECT 角色或 CREATE SESSION 允许用户连接数据库。

自 Oracle 10g 版本 2 (10.2) 起,CONNECT 角色仅具有 CREATE SESSION 权限。

对其他用户表的 SELECT 权限

数据查看人员需要具有对要查看并查询的特定表的 SELECT 权限。

使用数据缓存

注:

在使用数据缓存的情况下,连接还需要无数据缓存连接的权限。

CREATE TABLE*

CREATE TABLE 权限允许 Insights 在用户方案中创建临时表。

*使用 ALTER USER <username> QUOTA <size> ON <tablespace> 命令在表空间中为用户分配正确的 QUOTA。

CREATE SEQUENCE

CREATE SEQUENCE 权限允许 Insights 生成空间索引。

示例

以下 SQL 代码是关于如何为 Oracle 数据库授予权限的示例。 数据库管理员可对这些示例进行自定义,以向其组织中的数据库用户授予权限。

向读写用户授予权限:

GRANT CONNECT TO <userName>; 
GRANT CREATE TABLE TO <userName>; 
ALTER USER <userName> QUOTA <size> ON USERS; 
GRANT CREATE SEQUENCE TO <userName>;

向只读用户授予权限:

GRANT CONNECT TO <userName>; 
GRANT SELECT ON <schema>.<tableName> TO <userName>;

PostgreSQL

操作类型所需权限用途

不使用数据缓存

数据库的 CONNECT 权限

此权限允许用户连接至数据库。

将数据库的 CONNECT 权限授予特定数据库登录帐户。

用户方案的 USAGE 权限或用户表的 SELECT 权限

数据查看人员用户需要对包含用户表的特定方案具有 USAGE 权限。 或者对要查看和查询的特定用户表或视图具有 SELECT 权限。

授予对特定表和视图的 SELECT 权限。

使用数据缓存

注:

在使用数据缓存的情况下,连接还需要无数据缓存连接的权限。

方案的 CREATE 权限

CREATE 权限允许 Insights 在用户方案中创建索引和管理临时表。

示例

以下 SQL 代码是关于如何为 PostgreSQL 数据库授予权限的示例。 数据库管理员可对这些示例进行自定义,以向其组织中的数据库用户授予权限。

向读写用户授予权限:

GRANT CONNECT ON DATABASE <databaseName> TO <userName>;
GRANT USAGE ON SCHEMA <schemaName>TO <userName>;
GRANT CREATE ON SCHEMA <schemaName> TO <userName>;

向只读用户授予权限:

GRANT CONNECT ON DATABASE <databaseName> TO <userName>;
GRANT USAGE ON SCHEMA <schemaName>TO <userName>;   -- Give the access to all tables in the schema
GRANT SELECT ON <tableName> TO <userName>;  -- Or give the access to a specific table

SAP HANA

操作类型所需权限用途

不使用数据缓存

SELECT ON sys.st_geometry_columns 和 sys.st_spatial_reference_systems

需要使用这些权限读取空间运算的 ST_GEOMETRY 元数据。

SELECT ON <table1>,<table2>,<tablen>

数据查看人员需要具有对要查看并查询的特定表的 SELECT 权限。

使用数据缓存

注:

在使用数据缓存的情况下,连接还需要无数据缓存连接的权限。

CREATE TABLE

DROP TABLE

或者,用户必须为 HANA Standard 用户。

允许 Insights 在自己的方案中创建或放置表并插入数据。

示例

以下 SQL 代码是关于如何为 SAP HANA 数据库授予权限的示例。 数据库管理员可对这些示例进行自定义,以向其组织中的数据库用户授予权限。

标准读写用户具有使用 Insights 所需的所有权限。

非标准用户:

GRANT SELECT ON SCHEMA <schemaName> to <userName>;   -- executed by the schema owner 

GRANT SELECT ON sys.st_geometry_columns TO <userName>;   -- executed by SYSTEM account
GRANT SELECT ON sys.st_spatial_reference_systems TO <userName>;

Snowflake

Snowflake 中,权限通过角色应用至用户。 创建与 Snowflake 的数据库连接的用户角色必须包括以下权限:

所需权限用途

对 <数据库> 的 USAGE 权限

用于访问数据库中的表。 必须在数据库上为创建数据库连接的用户授予 USAGE 权限。

对 <方案> 的 USAGE 权限

用于访问方案中的表。

默认方案是 PUBLIC。

对 <表> 的 SELECT 权限

用于查看和查询表中的数据。 必须对数据库连接中使用的每个表授予 SELECT 权限。

对 <仓库> 的 USAGE 权限

用于在指定仓库中运行查询。

示例

以下 SQL 代码是关于如何为 Snowflake 数据库授予权限的示例。 数据库管理员可对这些示例进行自定义,以向其组织中的数据库用户授予权限。

对数据库中的所有表授予权限:

grant USAGE on DATABASE <databaseName> to role <roleName>;
grant USAGE on SCHEMA <schemaName> to role <roleName>;
grant SELECT ON ALL TABLES IN DATABASE <databaseName> to role <roleName>;
grant USAGE on WAREHOUSE <warehouseName> to role <roleName>;

接下来的步骤

现在,您已经验证并更新了数据库权限,如有必要,下一步将是创建与数据库的连接,以便您可以直接在 Insights 中访问数据库表。 有关详细信息,请参阅创建数据库连接