Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Introducing Neo4j 3.1
New Security and Clustering Architecture
●
●
●
○
○
○
3.1
New Binary Protocol ProceduresNew Language Drivers
3.1
3.1
http://graphconnect.com/
Massive Throughput
Data Redundancy
Data Redundancy
Data Redundancy
Data Redundancy
High Availability
High Availability
High Availability
Error!
503: Service Unavailable
High Availability
Error!
503: Service Unavailable
High Availability
Error!
503: Service Unavailable
High Availability
Error!
503: Service Unavailable
High Availability
✓
Error!
503: Service Unavailable
Data RedundancyMassive Throughput High Availability
Data RedundancyMassive Throughput High Availability
3.0
Data RedundancyMassive Throughput High Availability
3.0
Bigger Clusters Consensus Commit Built-in load balancing
3.1
Causa...
Replica
Core
• Small group of Neo4j databases
• Fault-tolerant Consensus Commit
• Responsible for data safety
Core
Writing to the Core Cluster
Neo4j Driver Neo4j Cluster
Writing to the Core Cluster
Neo4j Driver
CREATE (:User {...})
✓
Neo4j Cluster
Writing to the Core Cluster
Neo4j Driver
CREATE (:User {...})
✓
Neo4j Cluster
Writing to the Core Cluster
Neo4j Driver
CREATE (:User {...})
✓
✓
✓
Neo4j Cluster
Writing to the Core Cluster
Neo4j Driver
CREATE (:User {...})
✓
✓
✓
Neo4j Cluster
Writing to the Core Cluster
Neo4j Driver
CREATE (:User {...})
✓
✓
✓
Neo4j Cluster
Writing to the Core Cluster
Neo4j Driver
✓
✓
✓
Success
Neo4j Cluster
Writing to the Core Cluster
Neo4j Driver
✓
✓
✓
Success
Neo4j Cluster
✓
✓
• Small group of Neo4j databases
• Fault-tolerant Consensus Commit
• Responsible for data safety
Core
• For massive query throughput
• Read-only replicas
• Not involved in Consensus Commit
• Disposable, suitable for auto-sca...
Propagating updates to the Replica
Neo4j Driver Neo4j Cluster
Propagating updates to the Replica
Neo4j Driver Neo4j Cluster
Write
Propagating updates to the Replica
Neo4j Driver Neo4j Cluster
Write
Reading from the Replica
Neo4j Driver Neo4j Cluster
Read
Replica
Core Updating the graph
Queries, analysis, reporting
:sysinfo
Writing an application for
Neo4j Causal Clustering
App
Server
Neo4j
Driver
Bolt protocol
Java
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
</dependency>
Python
pip ...
https://neo4j.com/developer/language-guides
bolt://
GraphDatabase.driver( "bolt://aServer" )
bolt+routing://
GraphDatabase.driver( "bolt+routing://aCoreServer" )
GraphDatabase.driver( "bolt+routing://aCoreServer" )
Bootstrap: specify any
core server to route load
across the whole clu...
Application
Server
Neo4j
Driver
Max
Jim
Jane
Mark
Routed write statements
driver = GraphDatabase.driver( "bolt+routing://aCoreServer" );
try ( Session session = driver.sess...
Routed read queries
driver = GraphDatabase.driver( "bolt+routing://aCoreServer" );
try ( Session session = driver.session(...
Consistency
Register
Login
You need
to login in
to continue
your
purchase!
Register
Login
You need
to login in
to continue
your
purchase!
Username:
Password:
Create Account
Register
Login
You need
to login in
to continue
your
purchase!
Username:
jim_w
Password:
********
Create Account
Register
Login
You need
to login in
to continue
your
purchase!
Username:
Password:
Login
Username:
jim_w
Password:
********
Login
Purchase
Login
Successful
Try again
No account
found!Username:
jim_w
Password:
********
Login
Username:
jim_w
Password:
********
A few moments later...
✓
Login
Purchase
Login
SuccessfulUsername:
jim_w
Password:
********
Login
A few moments later...
✓
Q Why didn’t this work?
A Eventual Consistency
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
Create Account
A...
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
CREATE (:User)
C...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
CREATE (:User...
0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User)
Create Account
App
Server A Driver
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 ...
0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User)
Create Account
App
Server A Driver
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 ...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
CREATE ...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
CREATE ...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
CREATE ...
Bookmark
• Session token
• String (for portability)
• Opaque to application
• Represents ultimate user’s most recent
view ...
Let’s try again, with Causal Consistency
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
Create Account
A...
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
CREATE (:User)
C...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
CREATE (:User...
0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User)
Create Account
App
Server A Driver
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 ...
0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User)
Create Account
App
Server A Driver
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
0 1 ...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
CREATE ...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
CREATE ...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
C...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
C...
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
C...
Replica
Core Updating the graph
Queries, analysis, reporting
Neo4j 3.0 Neo4j 3.1
High Availability Cluster Causal Cluster
Master-Slave architecture
Paxos consensus used for master
ele...
3.1
•
•
•
# Choose LDAP connector as both authentication and authorization provider
dbms.security.auth_provider=ldap
# Configure LDA...
dbms.security.ldap.authorization.group_to_role_mapping= 
"CN=Neo4j Read Only,OU=groups,DC=example,DC=com" = reader; 
"CN=N...
# Configure mapping between groups in the LDAP and roles in Neo4j
dbms.security.ldap.authorization.group_to_role_mapping= ...
•
•
•
•
•
3.1
http://www.opencypher.org/
http://www.opencypher.org/
•
•
•
https://neo4j.com/blog/cypher-graphql-neo4j-3-1-preview/
https://neo4j.com/docs/operations-manual/beta/tools/cypher-shell/
neo4j-admin restore --from=<backup-directory> --database=<database-name> [--force]
Restore a backed up database.
neo4j-adm...
●
○
●
○
●
○
●
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Introducing Neo4j 3.1: New Security and Clustering Architecture
Upcoming SlideShare
Loading in …5
×

Introducing Neo4j 3.1: New Security and Clustering Architecture

976 views

Published on

Neo4j 3.1, now in public beta, introduces many new exciting features. It improves upon existing security features to provide enterprise class user management, including role based authentication and AD/LDAP integration. The release introduces a new clustering architecture called Causal Clustering that enables very large clusters of Neo4j to be deployed across data centers while maintaining the data integrity that is is critical for the property graph model. Other highlights include database kernel and operations advances, user defined functions, a new Cypher command line interface, and Neo4j Browser improvements.

In this webinar we will cover these new features in detail, including a live demo where we will show how to deploy a Neo4j 3.1 cluster and manage users using the new security features.

Published in: Technology
  • Be the first to comment

Introducing Neo4j 3.1: New Security and Clustering Architecture

  1. 1. Introducing Neo4j 3.1 New Security and Clustering Architecture
  2. 2. ● ● ● ○ ○ ○
  3. 3. 3.1
  4. 4. New Binary Protocol ProceduresNew Language Drivers
  5. 5. 3.1
  6. 6. 3.1
  7. 7. http://graphconnect.com/
  8. 8. Massive Throughput
  9. 9. Data Redundancy
  10. 10. Data Redundancy
  11. 11. Data Redundancy
  12. 12. Data Redundancy
  13. 13. High Availability
  14. 14. High Availability
  15. 15. High Availability Error! 503: Service Unavailable
  16. 16. High Availability Error! 503: Service Unavailable
  17. 17. High Availability Error! 503: Service Unavailable
  18. 18. High Availability Error! 503: Service Unavailable
  19. 19. High Availability ✓ Error! 503: Service Unavailable
  20. 20. Data RedundancyMassive Throughput High Availability
  21. 21. Data RedundancyMassive Throughput High Availability 3.0
  22. 22. Data RedundancyMassive Throughput High Availability 3.0 Bigger Clusters Consensus Commit Built-in load balancing 3.1 Causal Clustering
  23. 23. Replica Core
  24. 24. • Small group of Neo4j databases • Fault-tolerant Consensus Commit • Responsible for data safety Core
  25. 25. Writing to the Core Cluster Neo4j Driver Neo4j Cluster
  26. 26. Writing to the Core Cluster Neo4j Driver CREATE (:User {...}) ✓ Neo4j Cluster
  27. 27. Writing to the Core Cluster Neo4j Driver CREATE (:User {...}) ✓ Neo4j Cluster
  28. 28. Writing to the Core Cluster Neo4j Driver CREATE (:User {...}) ✓ ✓ ✓ Neo4j Cluster
  29. 29. Writing to the Core Cluster Neo4j Driver CREATE (:User {...}) ✓ ✓ ✓ Neo4j Cluster
  30. 30. Writing to the Core Cluster Neo4j Driver CREATE (:User {...}) ✓ ✓ ✓ Neo4j Cluster
  31. 31. Writing to the Core Cluster Neo4j Driver ✓ ✓ ✓ Success Neo4j Cluster
  32. 32. Writing to the Core Cluster Neo4j Driver ✓ ✓ ✓ Success Neo4j Cluster ✓ ✓
  33. 33. • Small group of Neo4j databases • Fault-tolerant Consensus Commit • Responsible for data safety Core
  34. 34. • For massive query throughput • Read-only replicas • Not involved in Consensus Commit • Disposable, suitable for auto-scaling Replica
  35. 35. Propagating updates to the Replica Neo4j Driver Neo4j Cluster
  36. 36. Propagating updates to the Replica Neo4j Driver Neo4j Cluster Write
  37. 37. Propagating updates to the Replica Neo4j Driver Neo4j Cluster Write
  38. 38. Reading from the Replica Neo4j Driver Neo4j Cluster Read
  39. 39. Replica Core Updating the graph Queries, analysis, reporting
  40. 40. :sysinfo
  41. 41. Writing an application for Neo4j Causal Clustering
  42. 42. App Server Neo4j Driver Bolt protocol
  43. 43. Java <dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> </dependency> Python pip install neo4j-driver .NET PM> Install-Package Neo4j.Driver JavaScript npm install neo4j-driver
  44. 44. https://neo4j.com/developer/language-guides
  45. 45. bolt:// GraphDatabase.driver( "bolt://aServer" )
  46. 46. bolt+routing:// GraphDatabase.driver( "bolt+routing://aCoreServer" )
  47. 47. GraphDatabase.driver( "bolt+routing://aCoreServer" ) Bootstrap: specify any core server to route load across the whole cluster bolt+routing://
  48. 48. Application Server Neo4j Driver Max Jim Jane Mark
  49. 49. Routed write statements driver = GraphDatabase.driver( "bolt+routing://aCoreServer" ); try ( Session session = driver.session( AccessMode.WRITE ) ) { try ( Transaction tx = session.beginTransaction() ) { tx.run( "MERGE (user:User {userId: {userId}})", parameters( "userId", userId ) ); tx.success(); } }
  50. 50. Routed read queries driver = GraphDatabase.driver( "bolt+routing://aCoreServer" ); try ( Session session = driver.session( AccessMode.READ ) ) { try ( Transaction tx = session.beginTransaction() ) { tx.run( "MATCH (user:User {userId: {userId}})-[*]-(:Product) RETURN *", parameters( "userId", userId ) ); tx.success(); } }
  51. 51. Consistency
  52. 52. Register Login You need to login in to continue your purchase!
  53. 53. Register Login You need to login in to continue your purchase! Username: Password: Create Account
  54. 54. Register Login You need to login in to continue your purchase! Username: jim_w Password: ******** Create Account
  55. 55. Register Login You need to login in to continue your purchase! Username: Password: Login
  56. 56. Username: jim_w Password: ******** Login
  57. 57. Purchase Login Successful Try again No account found!Username: jim_w Password: ******** Login
  58. 58. Username: jim_w Password: ******** A few moments later... ✓ Login
  59. 59. Purchase Login SuccessfulUsername: jim_w Password: ******** Login A few moments later... ✓
  60. 60. Q Why didn’t this work? A Eventual Consistency
  61. 61. 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 Create Account App Server A Driver
  62. 62. 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver
  63. 63. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver
  64. 64. 0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User) Create Account App Server A Driver 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
  65. 65. 0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User) Create Account App Server A Driver 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
  66. 66. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver
  67. 67. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver MATCH (:User) Login App Server B Driver
  68. 68. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver MATCH (:User) Login App Server B Driver
  69. 69. Bookmark • Session token • String (for portability) • Opaque to application • Represents ultimate user’s most recent view of the graph • More capabilities to come
  70. 70. Let’s try again, with Causal Consistency
  71. 71. 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 Create Account App Server A Driver
  72. 72. 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver
  73. 73. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver
  74. 74. 0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User) Create Account App Server A Driver 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
  75. 75. 0 1 2 3 4 5 6 7 8 9 10 11CREATE (:User) Create Account App Server A Driver 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
  76. 76. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver
  77. 77. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 CREATE (:User) Create Account App Server A Driver MATCH (:User) Login App Server B Driver
  78. 78. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 CREATE (:User) Create Account MATCH (:User) Login App Server A App Server B Driver Driver
  79. 79. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 CREATE (:User) Create Account MATCH (:User) Login App Server A App Server B Driver Driver 11
  80. 80. 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 CREATE (:User) Create Account MATCH (:User) Login App Server A App Server B Driver Driver 11
  81. 81. Replica Core Updating the graph Queries, analysis, reporting
  82. 82. Neo4j 3.0 Neo4j 3.1 High Availability Cluster Causal Cluster Master-Slave architecture Paxos consensus used for master election Raft protocol used for leader election, membership changes and commitment of all transactions Two part cluster: writeable Core and read-only read replicas. Transaction committed once written durably on the master Transaction committed once written durably on a majority of the core members Practical deployments: 10s servers Practical deployments: 100s servers
  83. 83. 3.1
  84. 84. • • •
  85. 85. # Choose LDAP connector as both authentication and authorization provider dbms.security.auth_provider=ldap # Configure LDAP connector to point to the AD server dbms.security.ldap.host=ldap://myactivedirectory.example.com # In case where defined users are not allowed to search for themselves, # we can specify credentials for user with read access to all users and groups dbms.security.ldap.authorization.use_system_account=true dbms.security.ldap.system_username=CN=admin,OU=people,DC=example,DC=com dbms.security.ldap.system_password=admin-password # Provide details on user structure within LDAP dbms.security.ldap.user_dn_template=CN={0},OU=people,DC=example,DC=com dbms.security.ldap.authorization.user_search_base=OU=people,dc=example,dc=com dbms.security.ldap.authorization.user_search_filter=(&(objectClass=*)(CN={0})) dbms.security.ldap.authorization.group_membership_attributes=memberOf ./conf/neo4j.conf
  86. 86. dbms.security.ldap.authorization.group_to_role_mapping= "CN=Neo4j Read Only,OU=groups,DC=example,DC=com" = reader; "CN=Neo4j Read-Write,OU=groups,DC=example,DC=com" = publisher; "CN=Neo4j Schema Manager,OU=groups,DC=example,DC=com" = architect; "CN=Neo4j Administrator,OU=groups,DC=example,DC=com" = admin; "CN=Neo4j Procedures,OU=groups,DC=example,DC=com" = allowed_role ./conf/neo4j.conf
  87. 87. # Configure mapping between groups in the LDAP and roles in Neo4j dbms.security.ldap.authorization.group_to_role_mapping= “CN=Neo4j Accounting,OU=groups,DC=example,DC=com” = accounting; “CN=Neo4j Operator,OU=groups,DC=example,DC=com” = operator CALL dbms.security.createRole(‘accounting’) CALL dbms.security.addRoleToUser(‘accounting’, ‘bobsmith’)
  88. 88. • • • • •
  89. 89. 3.1
  90. 90. http://www.opencypher.org/
  91. 91. http://www.opencypher.org/
  92. 92. • • •
  93. 93. https://neo4j.com/blog/cypher-graphql-neo4j-3-1-preview/
  94. 94. https://neo4j.com/docs/operations-manual/beta/tools/cypher-shell/
  95. 95. neo4j-admin restore --from=<backup-directory> --database=<database-name> [--force] Restore a backed up database. neo4j-admin dump neo4j-admin load neo4j-admin backup [--from=<address>] --to=<backup-path> [--check-consistency] [--additional-config=<config-file-path>] [--timeout=<timeout>] Perform a backup, over the network, from a running Neo4j server into a local copy of the database store (the backup). neo4j-admin check-consistency --database=<database> [--additional-config=<file>] [--verbose] Check the consistency of a database. neo4j-admin import --mode={database|csv} --database=<database-name> Import a collection of CSV files with --mode=csv, or a database from a pre-3.0 installation with --mode=database.
  96. 96. ● ○ ● ○ ● ○ ●

×