Best practices
|
This is the public preview documentation of Neo4j Virtual Graph. To provide feedback, please use the feedback form you were granted access to. During the public preview, we advise you not to use sensitive or production data with Virtual Graph. |
This page describes recommended security and query best practices for Virtual Graph deployments.
Security best practices
Scenario: all users are members of the same role
If all users are expected to access the same data, use a single role that has the necessary read permissions for the underlying data source.
Recommended pattern:
-
Put users in the same Aura project
-
Assign them as members of the project
-
Create a Virtual Graph that connects to a data source using a service account
-
Grant that service account the permissions required to read the data
-
Let the remote database enforce access through the data warehouse role and permissions
Scenario: users have different permissions
If users must only see data they are allowed to access in the underlying data warehouse, create a separate Virtual Graph for each user or user role.
Recommended pattern:
-
Create one Virtual Graph per user or per permission boundary
-
Configure each Virtual Graph with its own connection
-
Use a service account that runs as that user or role
-
Grant only the minimum required permissions for that role
|
A single Virtual Graph does not support multiple users querying the underlying data warehouse with their own user or role. |
Query best practices
Set a suitable query timeout to avoid long-running or unbounded queries.
For Snowflake, a common setting is STATEMENT_TIMEOUT_IN_SECONDS.
For other data warehouses, use the equivalent warehouse or connector-specific query timeout setting.The exact property name depends on the data source and platform.
When choosing a timeout, consider:
-
expected query latency
-
data volume
-
warehouse concurrency
-
user experience and dashboard responsiveness
Use a timeout that is long enough for legitimate workloads, but short enough to prevent runaway queries from consuming resources.