注:
Insights in ArcGIS Enterprise 和 Insights 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 中访问数据库表。 有关详细信息,请参阅创建数据库连接。