Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -827,7 +827,7 @@ These include the rights to perform the following classes of tasks:

* Manage xref:authentication-authorization/database-administration.adoc[database privileges] to control the rights to perform actions on specific databases:
** Manage access to a database and the right to start and stop a database.
** Manage link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/indexes-for-search-performance/[indexes] and link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/constraints/[constraints].
** Manage link:{neo4j-docs-base-uri}/cypher-manual/current/indexes-for-search-performance/[indexes] and link:{neo4j-docs-base-uri}/cypher-manual/current/constraints/[constraints].
** Allow the creation of labels, relationship types, or property names.
** Manage transactions.
* Manage xref:authentication-authorization/dbms-administration.adoc[DBMS privileges] to control the rights to perform actions on the entire system:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ CREATE ROLE deniedConfigurationViewer IF NOT EXISTS;

All DBMS privileges are relevant system-wide.
Like user management, they do not belong to one specific database or graph.
For more details on the differences between graphs, databases, and the DBMS, refer to link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/introduction/cypher_neo4j/[Cypher Manual -> Cypher and Neo4j].
For more details on the differences between graphs, databases, and the DBMS, refer to link:{neo4j-docs-base-uri}/cypher-manual/current/introduction/cypher_neo4j/[Cypher Manual -> Cypher and Neo4j].

image::privileges_grant_and_deny_syntax_dbms_privileges.svg[title="Syntax of GRANT and DENY DBMS Privileges"]

Expand Down Expand Up @@ -2055,7 +2055,7 @@ In this case, `+*+` means 0 or more characters, and `?` matches exactly one char

[NOTE]
====
The name-globbing is subject to the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/syntax/naming/[Cypher Manual -> Naming rules and recommendations], with the exception that it may include dots, stars, and question marks without the need for escaping using backticks.
The name-globbing is subject to the link:{neo4j-docs-base-uri}/cypher-manual/current/syntax/naming/[Cypher Manual -> Naming rules and recommendations], with the exception that it may include dots, stars, and question marks without the need for escaping using backticks.

Each part of the name-globbing separated by dots may be individually quoted.
For example, `++mine.`procedureWith%`++` is allowed, but not `++mine.procedure`With%`++`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ The known limitations and implications of Neo4j's role-based access control secu
[[access-control-limitations-indexes]]
== Security and indexes

As described in link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/indexes-for-search-performance/[Cypher Manual -> Indexes for search performance], Neo4j {neo4j-version} supports the creation and use of indexes to improve the performance of Cypher queries.
As described in link:{neo4j-docs-base-uri}/cypher-manual/current/indexes-for-search-performance/[Cypher Manual -> Indexes for search performance], Neo4j {neo4j-version} supports the creation and use of indexes to improve the performance of Cypher queries.

Note that the Neo4j security model impacts the results of queries, regardless if the indexes are used or not.
When using non full-text Neo4j indexes, a Cypher query will always return the same results it would have if no index existed.
This means that, if the security model causes fewer results to be returned due to restricted read access in xref:authentication-authorization/manage-privileges.adoc[Graph and sub-graph access control],
the index will also return the same fewer results.

However, this rule is not fully obeyed by link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/indexes-for-full-text-search[Cypher Manual -> Indexes for full-text search].
However, this rule is not fully obeyed by link:{neo4j-docs-base-uri}/cypher-manual/current/indexes-for-full-text-search[Cypher Manual -> Indexes for full-text search].
These specific indexes are backed by _Lucene_ internally.
It is therefore not possible to know for certain whether a security violation has affected each specific entry returned from the index.
In face of this, Neo4j will return zero results from full-text indexes in case it is determined that any result might be violating the security privileges active for that query.
Expand All @@ -51,7 +51,7 @@ CREATE FULLTEXT INDEX userNames FOR (n:User|Person) ON EACH [n.name, n.surname];
[NOTE]
====
Full-text indexes support multiple labels.
See link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/indexes-for-full-text-search/[Cypher Manual -> Indexes for full-text search] for more details on creating and using full-text indexes.
See link:{neo4j-docs-base-uri}/cypher-manual/current/indexes-for-full-text-search/[Cypher Manual -> Indexes for full-text search] for more details on creating and using full-text indexes.
====

After creating these indexes, it would appear that the latter two indexes accomplish the same thing.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ CREATE ROLE roleLoadCidr
This section explains how to use Cypher to manage load privileges.
All load privileges apply to the whole system.
Like DBMS privileges, they do not belong to one specific database or graph.
For more details on the differences between graphs, databases, and the DBMS, refer to link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/introduction/cypher_neo4j/[Cypher Manual -> Cypher and Neo4j].
For more details on the differences between graphs, databases, and the DBMS, refer to link:{neo4j-docs-base-uri}/cypher-manual/current/introduction/cypher_neo4j/[Cypher Manual -> Cypher and Neo4j].

image::privileges_grant_and_deny_syntax_load_privileges.svg[width="800", title="Syntax of GRANT and DENY load Privileges"]

// TODO: add image later when there is more than one LOAD privilege
//image::privileges_hierarchy_load.svg[title="Load privileges hierarchy"]

The load privileges apply to the Cypher link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/load-csv/[`LOAD CSV` clause], deciding whether or not the data can be loaded from the given source.
The load privileges apply to the Cypher link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/load-csv/[`LOAD CSV` clause], deciding whether or not the data can be loaded from the given source.

== Load privileges syntax

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ For more details about the syntax descriptions, see xref:database-administration
== The `CREATE` privilege

The `CREATE` privilege allows a user to create new node and relationship elements on a graph.
For more details, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/create/[the Cypher Manual -> `CREATE`] clause.
For more details, see link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/create/[the Cypher Manual -> `CREATE`] clause.

[source, syntax, role="noheader"]
----
Expand Down Expand Up @@ -93,7 +93,7 @@ See xref:authentication-authorization/limitations.adoc#access-control-limitation
== The `DELETE` privilege

The `DELETE` privilege allows a user to delete node and relationship elements on a graph.
For more details, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/delete/[the Cypher Manual -> `DELETE`] clause.
For more details, see link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/delete/[the Cypher Manual -> `DELETE`] clause.

[source, syntax, role="noheader"]
----
Expand Down Expand Up @@ -151,7 +151,7 @@ See xref:authentication-authorization/limitations.adoc#access-control-limitation
[[access-control-privileges-writes-set-label]]
== The `SET LABEL` privilege

The `SET LABEL` privilege allows you to set labels on a node using the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/set/#set-set-a-label-on-a-node[Cypher `SET` clause]:
The `SET LABEL` privilege allows you to set labels on a node using the link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/set/#set-set-a-label-on-a-node[Cypher `SET` clause]:

[source, syntax, role="noheader"]
----
Expand Down Expand Up @@ -203,7 +203,7 @@ See xref:authentication-authorization/limitations.adoc#access-control-limitation
[[access-control-privileges-writes-remove-label]]
== The `REMOVE LABEL` privilege

The `REMOVE LABEL` privilege allows you to remove labels from a node by using the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/remove/#remove-remove-a-label-from-a-node[Cypher `REMOVE` clause]:
The `REMOVE LABEL` privilege allows you to remove labels from a node by using the link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/remove/#remove-remove-a-label-from-a-node[Cypher `REMOVE` clause]:

[source, syntax, role="noheader"]
----
Expand Down Expand Up @@ -250,7 +250,7 @@ See xref:authentication-authorization/limitations.adoc#access-control-limitation
[[access-control-privileges-writes-set-property]]
== The `SET PROPERTY` privilege

The `SET PROPERTY` privilege allows a user to set a property on a node or relationship element in a graph by using the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/set/#set-set-a-property[Cypher `SET` clause]:
The `SET PROPERTY` privilege allows a user to set a property on a node or relationship element in a graph by using the link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/set/#set-set-a-property[Cypher `SET` clause]:

[source, syntax, role="noheader"]
----
Expand Down Expand Up @@ -308,7 +308,7 @@ See xref:authentication-authorization/limitations.adoc#access-control-limitation
== The `MERGE` privilege

The `MERGE` privilege is a compound privilege that combines `TRAVERSE` and `READ` (i.e. `MATCH`) with `CREATE` and `SET PROPERTY`.
This is intended to enable the use of the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/merge/[Cypher `MERGE` command], but it is also applicable to all reads and writes that require these privileges.
This is intended to enable the use of the link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/merge/[Cypher `MERGE` command], but it is also applicable to all reads and writes that require these privileges.

[source, syntax, role="noheader"]
----
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ This is essential when revoking property-based privileges containing evaluated f
====
[NOTE]
====
Not all temporal values are comparable, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/syntax/operators/#cypher-ordering[Cypher Manual -> Syntax -> Operators -> Ordering and comparison of values].
Not all temporal values are comparable, see link:{neo4j-docs-base-uri}/cypher-manual/current/syntax/operators/#cypher-ordering[Cypher Manual -> Syntax -> Operators -> Ordering and comparison of values].
====

.Show the privilege created by the command in the previous example as a revoke command:
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/clustering/databases.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ To create a database `foo` with 3 servers hosting the database in primary mode a
----
CREATE DATABASE foo TOPOLOGY 3 PRIMARIES 2 SECONDARIES
----
Alternatively, you can use link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/syntax/parameters[parameters] to provide the number of primaries and secondaries:
Alternatively, you can use link:{neo4j-docs-base-uri}/cypher-manual/current/syntax/parameters[parameters] to provide the number of primaries and secondaries:

.Parameters
[source,javascript, indent=0]
Expand Down Expand Up @@ -67,7 +67,7 @@ To change the topology of the database `foo` from the previous example, the comm
----
ALTER DATABASE foo SET TOPOLOGY 2 PRIMARIES 1 SECONDARY
----
Alternatively, you can use link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/syntax/parameters[parameters] to provide the number of primaries and secondaries:
Alternatively, you can use link:{neo4j-docs-base-uri}/cypher-manual/current/syntax/parameters[parameters] to provide the number of primaries and secondaries:

.Parameters
[source,javascript, indent=0]
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/clustering/setup/routing.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ With server-side routing enabled, such queries are rerouted internally to a clus
This situation can occur for write-transaction queries when they address a database for which the receiving cluster member is not the leader.

The cluster role for cluster members is per database.
Thus, if a write-transaction query is sent to a cluster member that is not the leader for the specified database (specified either via the link:{neo4j-docs-base-uri}/bolt/current/bolt[Bolt Protocol] or with Cypher link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/use[`USE` clause]), server-side routing is performed if properly configured.
Thus, if a write-transaction query is sent to a cluster member that is not the leader for the specified database (specified either via the link:{neo4j-docs-base-uri}/bolt/current/bolt[Bolt Protocol] or with Cypher link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/use[`USE` clause]), server-side routing is performed if properly configured.

Server-side routing is enabled by the DBMS, by setting xref:configuration/configuration-settings.adoc#config_dbms.routing.enabled[`dbms.routing.enabled=true`] for each cluster member.
The listen address (xref:configuration/configuration-settings.adoc#config_server.routing.listen_address[`server.routing.listen_address`]) and advertised address (xref:configuration/configuration-settings.adoc#config_server.routing.advertised_address[`server.routing.advertised_address`]) also need to be configured for server-side routing communication.
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/configuration/configuration-settings.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1820,8 +1820,8 @@ m|+++OFF+++
|===

For some queries, the planner can infer predicates such as labels or types from the graph structure that can improve estimating the number of rows that each operator produces.
for more information, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/planning-and-tuning/execution-plans/#runtimes-reading-execution-plans[Cypher Manual -> Execution plans and query tuning -> Understanding execution plans]. +
For details on how to configure this setting on a per-query basis,effectively overriding this setting on that particular query, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/planning-and-tuning/query-tuning/#cypher-infer-schema-parts[Cypher Manual -> Query tuning -> Cypher infer schema parts].
for more information, see link:{neo4j-docs-base-uri}/cypher-manual/current/planning-and-tuning/execution-plans/#runtimes-reading-execution-plans[Cypher Manual -> Execution plans and query tuning -> Understanding execution plans]. +
For details on how to configure this setting on a per-query basis,effectively overriding this setting on that particular query, see link:{neo4j-docs-base-uri}/cypher-manual/current/planning-and-tuning/query-tuning/#cypher-infer-schema-parts[Cypher Manual -> Query tuning -> Cypher infer schema parts].

// In general, inferring more information should improve the estimation and thereby the planner's decisions.
// Should this not be the case, this setting provides the means to disable inference.
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/configuration/file-locations.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,11 @@ For Enterprise Edition, these are:

* link:{neo4j-docs-base-uri}/bloom-user-guide/current/[Neo4j Bloom]
* link:{neo4j-docs-base-uri}/graph-data-science/current/[Graph Data Science Library]
* link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/genai-integrations/[GenAI plugin]
* link:{neo4j-docs-base-uri}/cypher-manual/current/genai-integrations/[GenAI plugin]
* link:{neo4j-docs-base-uri}/ops-manager/current/[Neo4j Ops Manager Server]
* _README.txt_ file -- with information on enabling them.

Community Edition contains only the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/genai-integrations/[GenAI plugin].
Community Edition contains only the link:{neo4j-docs-base-uri}/cypher-manual/current/genai-integrations/[GenAI plugin].

File permissions:: Read only.

Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/configuration/plugins.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ The following plugins are supported:
| GenAI
| `genai`
|
| link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/genai-integrations/[Cypher Manual -> GenAI integrations].
| link:{neo4j-docs-base-uri}/cypher-manual/current/genai-integrations/[Cypher Manual -> GenAI integrations].

| GraphQL
| `graphql`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ ALTER ALIAS garden.flowers SET DATABASE PROPERTIES { perennial: true }
ALTER ALIAS garden.trees SET DATABASE TARGET updatedTrees AT 'neo4j+s://location:7687' PROPERTIES { treeVersion: 2 }
----

The updated properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].
The updated properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/current/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].

The changes for all database aliases will show up in the `SHOW ALIASES FOR DATABASE` command.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ The `IF NOT EXISTS` and `OR REPLACE` parts of these commands cannot be used toge
=== Set properties for local database aliases

Local database aliases can also be given properties.
These properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].
These properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/current/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].

.Query
[source, cypher]
Expand Down Expand Up @@ -442,7 +442,7 @@ SHOW ALIAS `remote-with-driver-settings` FOR DATABASE YIELD *
==== Set properties for remote database aliases

Just as the local database aliases, the remote database aliases can be given properties.
These properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].
These properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/current/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].

.Query
[source, cypher]
Expand Down Expand Up @@ -575,7 +575,7 @@ ALTER ALIAS `motion pictures` SET DATABASE PROPERTIES { nameContainsSpace: true,
ALTER ALIAS `movie scripts` SET DATABASE PROPERTIES { nameContainsSpace: true }
----

The updated properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].
The updated properties can then be used in queries with the link:{neo4j-docs-base-uri}/cypher-manual/current/functions/graph/#functions-graph-propertiesByName[`graph.propertiesByName()` function].

=== Use `IF EXISTS` when altering database aliases

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
= Naming rules for database aliases

Database alias names are subject to the standard Cypher restrictions on valid identifiers.
See link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/syntax/naming[Cypher Manual -> Naming rules and recommendations].
See link:{neo4j-docs-base-uri}/cypher-manual/current/syntax/naming[Cypher Manual -> Naming rules and recommendations].

The following naming rules apply:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ A user can connect to a remote database alias the same way they would do to a da
This includes:

* Connecting directly to the remote database alias.
* The Cypher link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/use[`USE` clause] enables a user to query a remote database alias that they are not directly connected to:
* The Cypher link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/use[`USE` clause] enables a user to query a remote database alias that they are not directly connected to:

[source, Cypher]
----
Expand Down
Loading
Loading