所需数据库权限

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 在用户方案中创建临时表或视图。

INSERT

INSERT 权限允许用户向数据库的表中插入行。

UPDATE

UPDATE 权限允许用户对数据库中的表使用 UPDATE 语句。

示例

以下 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 中访问数据库表。 有关详细信息,请参阅创建数据库连接