SlideShare a Scribd company logo
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
Role Based Access Controls
(RBAC) in Neo4j
Jeff Tallman
jeff.tallman@neo4j.com
Field Engineer/Pre-Sales Engineering
© 2022 Neo4j, Inc. All rights reserved.
2
Role Based Access Controls (RBAC)
• Understand the levels of RBAC supported
• RBAC basics for data access
• RBAC roles for separation of duties (DBA vs. SSO)
• RBAC roles for developers & GDS execution
© 2022 Neo4j, Inc. All rights reserved.
RBAC Privileges
Privileges operate only on roles - not user/logins
• Can only be granted to roles - you can’t grant a privilege to a specific user name
Changes take place immediately
• Privileges are not cached - so no need to disconnect/reconnect or “grant all to null” to flush
cache as with other DBMS’s
Roles & Privileges are stored in the system database
• Make sure you back it up
• If copying a database to a new system, make sure you backup with --include_metadata option
Databases as containers
• One concept that may be difficult for users of MS SQL, et al to grasp is that each database in
Neo4j is a completely separate entity
• For example, query processing takes place within the context of a database
◦ Which is why cross-database queries are not supported (except via Fabric)
• However, roles and permissions granted to roles (including graph-privileges) are stored in
system
© 2022 Neo4j, Inc. All rights reserved.
Native Roles
PUBLIC
• The default role. Every new user or role will inherit
this role.
• Access to the default/home database.
• Allows executing procedures & user-defined
functions with the users own privileges.
reader
• A typical read-only role.
editor
• A regular user with read/write access to the
database, write access limited to creating and
changing existing properties,node labels and
relationships.
publisher
• A user traverse,read and write on the data graph
Architect
• A user who can manage indexes and constraints
admin
• A superuser, database administrator
4
https://neo4j.com/docs/operations-manual/current/authentication-authorization/built-in-roles/
(matrix below from docs is generally correct
but not exactly precise - see later slides)
© 2022 Neo4j, Inc. All rights reserved.
Privilege Categories
• Roles
◦ Typical RBAC roles - user defined or system predefined
• dbms-privilege
◦ Privileges that span the database instance and are not able to be restricted to a single database or role
• database-privilege
◦ Admin or access privileges than can be assigned to a particular database at the database level
• graph-privilege
◦ Privileges are that can be granted within a single database
© 2022 Neo4j, Inc. All rights reserved.
General Syntax
GRANT
• Allows access
DENY
• Blocks access
• Take precedence over all other granted privileges that the user
may have no matter what other roles may have the privilege
• In other words, denying any privilege to PUBLIC …..denies it
for everyone no matter if admin or not…or if granted privilege
on a different role….
o So be very, very careful if denying a privilege to PUBLIC
REVOKE
• Removes a previously granted or denied privilege
Graph = Database
• HOME GRAPH
o The user’s “home database”
• GRAPH <graphname>[,<graphname>[, …]]
o The listed database or databases
ENTITY
• NODES
• RELATIONSHIPS
• ELEMENTS - both NODES & RELATIONSHIPS
<role>[, <role>[, …]]
• A list of user defined or predefined system roles
[GRANT|DENY] graph-privilege ({proplist})
ON {HOME GRAPH | GRAPH[S] {* | name[, ...]}}
[entity] TO role[, ...]
REVOKE ([GRANT|DENY]) graph-privilege ({proplist})
ON {HOME GRAPH | GRAPH[S] {* | name[, ...]}}
[entity] FROM role[, ...]
DENY READ { taxPayerID } ON GRAPH protegrity
NODES Customer TO reader
;
SHOW PRIVILEGES [YIELD <col list> | *];
SHOW ROLE <rolename> PRIVILEGES [AS COMMANDS];
© 2022 Neo4j, Inc. All rights reserved.
DBMS Level Privileges Hierarchy
© 2022 Neo4j, Inc. All rights reserved.
Database Privilege Hierarchy
© 2022 Neo4j, Inc. All rights reserved.
Graph Privileges and Hierarchy
© 2022 Neo4j, Inc. All rights reserved.
Separation of Duties - DBMS Management
DBA’s (dba_role)
• Manage and monitor the DBMS
• Manage transactions (kill run away queries)
• Do not manage database schema or data itself other
than perform backups/restores
Operations DBA (operations_role)
• Monitor the DBMS
• Manage transactions (kill run away queries)
SSO (sso_role)
• Manage logins/users
• Manage system roles
Database Admin (dbadmin_role)
• Manage access to a database
• Manage permissions within a database
• Manage roles for a database
• Note that all of the above can only be controlled at the
DBMS level vs. individual database
o So granting this privilege allows the role to allow access
and manage roles for other databases as well…
o ….if undesirable, then SSO has to be involved for any of
these operations.
(admin)
Dba_role
Oper_role
SSO
dbamdin
All DBMS Privileges 
Database Management  
Create | Drop | Alter database   ?
Stop | Start database   
Set database access   ?
Exec Admin Procedure   ?
Show transaction    db
Terminate transaction    db
Transaction management    db
Privilege management   ?
Assign privilege   ?
Remove privilege   ?
Show privilege   ?
© 2022 Neo4j, Inc. All rights reserved.
Separation of Duties - Roles & Users
DBA’s (dba_role)
• Manage and monitor the DBMS
• Manage transactions (kill run away queries)
• Do not manage database schema or data
itself other than perform backups/restores
Operations DBA (operations_role)
• Monitor the DBMS
• Manage transactions (kill run away queries)
SSO (sso_role)
• Manage logins/users
Database Admin (dbadmin_role)
• Manage access to a database
• Manage permissions within a database
Developer & GDS Users (developer_role)
• Can create schema components
• Able to kill their own queries
(admin)
Dba_role
Oper_role
SSO
dbamdin
Role management   ?
Create | Drop | Rename role   ?
Assign | Remove role   ?
Show role   ?
User management  
Create | Drop | Rename | Alter user  
Set passwords  
Set user home database  
Set user status  
Show user  
Impersonate  ? ?
© 2022 Neo4j, Inc. All rights reserved.
Separation of Duties - Database Schema
System predefined roles
• Can access any database
• admin role can do anything
• architect and publisher can do anything
schema-wise except grant access
Database Admin (dbadmin_role)
• Manage access to a database
• Manage permissions within a database
Developers (developer_role)
• Can create schema components
• Able to kill their own queries
GDS Users (gds_role)
• Able to create new labels & relationship
types
• Able to create new properties
• May need to be able to create indexes
architect
publisher
editor
dbadmin
Developer
GDS
User
App
User
Sched
Job
CREATE INDEX      ?
DROP INDEX      ?
SHOW INDEX      ?
INDEX MANAGEMENT     
CREATE CONSTRAINT     ?
DROP CONSTRAINT     ?
SHOW CONSTRAINT     ?
CONSTRAINT MANAGEMENT    
CREATE NEW LABEL      ?
CREATE NEW RELATIONSHIP TYPE      ?
CREATE NEW PROPERTY      ?
NAME MANAGEMENT      ?
ALL DATABASE PRIVILEGES  
ACCESS ON DATABASE * (all databases)   
(lacks access priv)
© 2022 Neo4j, Inc. All rights reserved.
architect
publisher
editor
dbadmin
Developer
GDS
User
App
User
Sched
Job
TRAVERSE        
READ        
MATCH        
CREATE        
DELETE       ? ?
SET LABEL       ? ?
REMOVE LABEL       ? ?
SET PROPERTY        
MERGE        
WRITE       ? ?
ALL GRAPH PRIVILEGES   
EXECUTE PROCEDURE
EXECUTE BOOSTED PROCEDURE ? ? ? ?
EXECUTE USER DEFINED FUNC
EXEC BOOSTED UDF ? ? ? ?
Separation of Duties - Graph Privileges
Database Admin (dbadmin_role)
• Manage access to a database
• Manage permissions within a database
Developers (developer_role)
• Can create schema components
• Able to kill their own queries
GDS Users (gds_role)
• Able to create new labels & relationship
types
• Able to create new properties
• May need to be able to create indexes
Application User (<user defined roles +
PUBLIC>)
• Read/Write or Read-Only as necessary
• Can’t create schema components
• Able to kill their own queries
< ----------------------- (PUBLIC) ----------------------- >
< ----------------------- (PUBLIC) ----------------------- >
© 2022 Neo4j, Inc. All rights reserved.
Creating a developer role (sample)
CREATE ROLE developer_role;
GRANT INDEX MANAGEMENT ON DATABASES * TO developer_role;
GRANT CONSTRAINT MANAGEMENT ON DATABASES * TO developer_role;
GRANT NAME MANAGEMENT ON DATABASES * TO developer_role;
//GRANT ALL PRIVILEGES ON DATABASES * TO developer_role;
GRANT ALL GRAPH PRIVILEGES ON GRAPHS * TO developer_role
This would be a mistake!
© 2022 Neo4j, Inc. All rights reserved.
Impersonation: A key aspect of RBAC
Two critical reasons for impersonation
• Enterprise systems with middle tier components or
microservices often need to act on the behalf of
other logins
o Disconnecting/Reconnecting at every user change is
error prone and excessive overhead
• Testing or debugging security controls is almost
impossible unless you can mimic other users
Currently supported ONLY in language API’s only
• No cypher equivalent to SQL’s “set session
authorization”
• In the API, it is part of the session configuration
• Sooo…you can not test impersonation/security via
cypher-shell or browser
Grant to impersonate specific users
• If you grant permission to * …..user can become
“neo4j” with admin role
• …or may end up getting elevated privileges
GRANT IMPERSONATE [(*)]
ON DBMS
TO role[, ...]
GRANT IMPERSONATE (user[, ...])
ON DBMS
TO role[, ...]
© 2022 Neo4j, Inc. All rights reserved.
Separation of Duties - DBA
Creates DBMS DBA role
• Can create/drop/alter databases
• Can execute amin procedures
• Can execute boosted procedures that are named
dbms.*
Creates DBMS Oper role
• Complements DBA role
• Can be assigned to operations staff that we don’t
want to be able to create/drop databases
• Can stop/start any database
• Can see/kill transactions from any user
Creates a DBMS DBA user
• Has both dba_role and oper_role
• Does not have access to any database except
system
o Access to system is due to fact it is user’s “home
database”
o DBA can see database exists, but attempts to use
the database will fail
• As a result, cannot see any user data
:use system;
CREATE ROLE dba_role IF NOT EXISTS;
GRANT CREATE DATABASE ON DBMS TO dba_role;
GRANT DROP DATABASE ON DBMS TO dba_role;
GRANT ALTER DATABASE ON DBMS TO dba_role;
GRANT EXECUTE ADMIN PROCEDURES ON DBMS to dba_role;
GRANT EXECUTE BOOSTED PROCEDURES dbms.* ON DBMS to dba_role;
CREATE ROLE oper_role IF NOT EXISTS;
GRANT STOP ON DATABASE * TO oper_role;
GRANT START ON DATABASE * TO oper_role;
GRANT TRANSACTION MANAGEMENT ON DATABASE * TO oper_role;
CREATE USER ima_dba IF NOT EXISTS
SET PLAINTEXT PASSWORD "ima_dba"
SET PASSWORD CHANGE NOT REQUIRED
SET STATUS ACTIVE
SET HOME DATABASE system
;
GRANT ROLE dba_role TO ima_dba;
GRANT ROLE oper_role TO ima_dba;
© 2022 Neo4j, Inc. All rights reserved.
Separation of Duties - SSO
Creates DBMS SSO role
• Can manage users
• Can manage roles
• Can manage privileges
• Can control access to databases
There is a security hole/exposure w/ Role Mgmt
• Problem is Neo4j does not allow for role exclusion
o E.g. if you have role A, you cannot have role B
• Consequently, an SSO role user can grant
themselves DBA role….or dbadmin_role (next) and
do things they shouldn’t
• It would be automatically logged into security.log
o So as long as the SSO didn’t have the ability to write
to that log (e.g. not neo4j user), they couldn’t hide
what they did
o No real workaround - anyone with “ASSIGN ROLE”
permission can become whomever they want
:use system;
CREATE ROLE sso_role IF NOT EXISTS;
GRANT SET DATABASE ACCESS ON DBMS TO sso_role;
GRANT PRIVILEGE MANAGEMENT ON DBMS TO sso_role;
GRANT USER MANAGEMENT ON DBMS TO sso_role;
GRANT ROLE MANAGEMENT ON DBMS TO sso_role;
CREATE USER ima_sso IF NOT EXISTS
SET PLAINTEXT PASSWORD "ima_sso"
SET PASSWORD CHANGE NOT REQUIRED
SET STATUS ACTIVE
SET HOME DATABASE system
;
GRANT ROLE sso_role TO ima_sso;
© 2022 Neo4j, Inc. All rights reserved.
Separation of Duties - DBAdmin
Creates DBAdmin role
• Can do anything within the specified database
• Can modify schema
o create indexes/constraints
o Create new labels, relationship types, property
names
• Can read/write data
• Can see/kill user processes for this database only
There are several security holes/exposures
• Problem is Neo4j does role/privilege/access
management at a per database level
• Which then also exposes the role management
hole
• Workarounds
o Again, it is audited in the security.log
o Don’t grant dbadmins this permission - or grant only
for a short time (when designing security layer)
• Otherwise restrict to sso_role
:use system;
CREATE ROLE custdb_dbadmin_role IF NOT EXISTS;
GRANT ALL DATABASE PRIVILEGES ON DATABASE custdb
TO custdb_dbadmin_role;
GRANT ALL GRAPH PRIVILEGES ON GRAPHS custdb
TO custdb_dbadmin_role;
GRANT TRANSACTION MANAGEMENT ON DATABASE custdb
TO custdb_dbadmin_role;
// We will assume this is not multi-tenancy, therefore we
// will trust individual dbadmins to be able to create roles
// and assign privileges - but not be able to manage users
GRANT SET DATABASE ACCESS ON DBMS TO custdb_dbadmin_role;
GRANT PRIVILEGE MANAGEMENT ON DBMS TO custdb_dbadmin_role;
GRANT ROLE MANAGEMENT ON DBMS TO custdb_dbadmin_role;
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
19
Thank you!
Contact us at
sales@neo4j.com
Ad

More Related Content

What's hot (20)

MySQL NDB Cluster 101
MySQL NDB Cluster 101MySQL NDB Cluster 101
MySQL NDB Cluster 101
Bernd Ocklin
 
Label based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQLLabel based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQL
Kohei KaiGai
 
Boost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined ProceduresBoost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined Procedures
Neo4j
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
jexp
 
An overview of Neo4j Internals
An overview of Neo4j InternalsAn overview of Neo4j Internals
An overview of Neo4j Internals
Tobias Lindaaker
 
Kafka Retry and DLQ
Kafka Retry and DLQKafka Retry and DLQ
Kafka Retry and DLQ
George Teo
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
James Serra
 
Advanced SQL For Data Scientists
Advanced SQL For Data ScientistsAdvanced SQL For Data Scientists
Advanced SQL For Data Scientists
Databricks
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
Pooyan Mehrparvar
 
Introducing Neo4j
Introducing Neo4jIntroducing Neo4j
Introducing Neo4j
Neo4j
 
Basic oracle-database-administration
Basic oracle-database-administrationBasic oracle-database-administration
Basic oracle-database-administration
sreehari orienit
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
BADR
 
HBase Storage Internals
HBase Storage InternalsHBase Storage Internals
HBase Storage Internals
DataWorks Summit
 
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and HudiA Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
Databricks
 
GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™
Databricks
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitter
nkallen
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
Jonas Bonér
 
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Jignesh Shah
 
How to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB PostgresHow to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB Postgres
Ashnikbiz
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 
MySQL NDB Cluster 101
MySQL NDB Cluster 101MySQL NDB Cluster 101
MySQL NDB Cluster 101
Bernd Ocklin
 
Label based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQLLabel based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQL
Kohei KaiGai
 
Boost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined ProceduresBoost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined Procedures
Neo4j
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
jexp
 
An overview of Neo4j Internals
An overview of Neo4j InternalsAn overview of Neo4j Internals
An overview of Neo4j Internals
Tobias Lindaaker
 
Kafka Retry and DLQ
Kafka Retry and DLQKafka Retry and DLQ
Kafka Retry and DLQ
George Teo
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
James Serra
 
Advanced SQL For Data Scientists
Advanced SQL For Data ScientistsAdvanced SQL For Data Scientists
Advanced SQL For Data Scientists
Databricks
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
Pooyan Mehrparvar
 
Introducing Neo4j
Introducing Neo4jIntroducing Neo4j
Introducing Neo4j
Neo4j
 
Basic oracle-database-administration
Basic oracle-database-administrationBasic oracle-database-administration
Basic oracle-database-administration
sreehari orienit
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
BADR
 
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and HudiA Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
Databricks
 
GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™
Databricks
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitter
nkallen
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
Jonas Bonér
 
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Jignesh Shah
 
How to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB PostgresHow to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB Postgres
Ashnikbiz
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 

Similar to Role-Based Access Control (RBAC) in Neo4j (20)

Kangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQLKangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 
Lesson 5 security
Lesson 5   securityLesson 5   security
Lesson 5 security
Ram Kedem
 
Introduction of security in neo4j database
Introduction of security in neo4j databaseIntroduction of security in neo4j database
Introduction of security in neo4j database
setarehkhodarahmi
 
Privilege Analysis with the Oracle Database
Privilege Analysis with the Oracle DatabasePrivilege Analysis with the Oracle Database
Privilege Analysis with the Oracle Database
Markus Flechtner
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
SpanishPASSVC
 
Solving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration DilemmaSolving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration Dilemma
Randy Goering
 
Solving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration DilemmaSolving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration Dilemma
Randy Goering
 
DB2 LUW Auditing
DB2 LUW AuditingDB2 LUW Auditing
DB2 LUW Auditing
DB2Locksmith
 
DB2UDB_the_Basics Day 3
DB2UDB_the_Basics Day 3DB2UDB_the_Basics Day 3
DB2UDB_the_Basics Day 3
Pranav Prakash
 
Less06 users
Less06 usersLess06 users
Less06 users
Imran Ali
 
Ace Up the Sleeve
Ace Up the SleeveAce Up the Sleeve
Ace Up the Sleeve
Will Schroeder
 
Oracle Database Security For Developers
Oracle Database Security For DevelopersOracle Database Security For Developers
Oracle Database Security For Developers
Szymon Skorupinski
 
Partially Contained Databases
Partially Contained DatabasesPartially Contained Databases
Partially Contained Databases
Microsoft TechNet - Belgium and Luxembourg
 
Odv oracle customer_demo
Odv oracle customer_demoOdv oracle customer_demo
Odv oracle customer_demo
Viaggio Italia
 
Presentation database security enhancements with oracle
Presentation   database security enhancements with oraclePresentation   database security enhancements with oracle
Presentation database security enhancements with oracle
xKinAnx
 
03_DP_300T00A_Secure_Environment.pptx
03_DP_300T00A_Secure_Environment.pptx03_DP_300T00A_Secure_Environment.pptx
03_DP_300T00A_Secure_Environment.pptx
KareemBullard1
 
tw_242.ppt
tw_242.ppttw_242.ppt
tw_242.ppt
PokinMorakrant
 
Managing Postgres at Scale With Postgres Enterprise Manager
Managing Postgres at Scale With Postgres Enterprise ManagerManaging Postgres at Scale With Postgres Enterprise Manager
Managing Postgres at Scale With Postgres Enterprise Manager
EDB
 
Kangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQLKangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 
Lesson 5 security
Lesson 5   securityLesson 5   security
Lesson 5 security
Ram Kedem
 
Introduction of security in neo4j database
Introduction of security in neo4j databaseIntroduction of security in neo4j database
Introduction of security in neo4j database
setarehkhodarahmi
 
Privilege Analysis with the Oracle Database
Privilege Analysis with the Oracle DatabasePrivilege Analysis with the Oracle Database
Privilege Analysis with the Oracle Database
Markus Flechtner
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
SpanishPASSVC
 
Solving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration DilemmaSolving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration Dilemma
Randy Goering
 
Solving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration DilemmaSolving the DB2 LUW Administration Dilemma
Solving the DB2 LUW Administration Dilemma
Randy Goering
 
DB2UDB_the_Basics Day 3
DB2UDB_the_Basics Day 3DB2UDB_the_Basics Day 3
DB2UDB_the_Basics Day 3
Pranav Prakash
 
Less06 users
Less06 usersLess06 users
Less06 users
Imran Ali
 
Oracle Database Security For Developers
Oracle Database Security For DevelopersOracle Database Security For Developers
Oracle Database Security For Developers
Szymon Skorupinski
 
Odv oracle customer_demo
Odv oracle customer_demoOdv oracle customer_demo
Odv oracle customer_demo
Viaggio Italia
 
Presentation database security enhancements with oracle
Presentation   database security enhancements with oraclePresentation   database security enhancements with oracle
Presentation database security enhancements with oracle
xKinAnx
 
03_DP_300T00A_Secure_Environment.pptx
03_DP_300T00A_Secure_Environment.pptx03_DP_300T00A_Secure_Environment.pptx
03_DP_300T00A_Secure_Environment.pptx
KareemBullard1
 
Managing Postgres at Scale With Postgres Enterprise Manager
Managing Postgres at Scale With Postgres Enterprise ManagerManaging Postgres at Scale With Postgres Enterprise Manager
Managing Postgres at Scale With Postgres Enterprise Manager
EDB
 
Ad

More from Neo4j (20)

Graphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAIGraphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAI
Neo4j
 
Neo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptxNeo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptx
Neo4j
 
GraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptxGraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptx
Neo4j
 
Neo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with GraphNeo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with Graph
Neo4j
 
Smarter Knowledge Graphs For Public Sector
Smarter Knowledge Graphs For Public  SectorSmarter Knowledge Graphs For Public  Sector
Smarter Knowledge Graphs For Public Sector
Neo4j
 
GraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's FutureGraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's Future
Neo4j
 
Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24
Neo4j
 
ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024
Neo4j
 
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Neo4j
 
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Neo4j
 
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Neo4j
 
Démonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire ManagementDémonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire Management
Neo4j
 
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Neo4j
 
Démonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk ParisDémonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk Paris
Neo4j
 
The Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening SessionThe Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening Session
Neo4j
 
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
Neo4j
 
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Neo4j
 
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalkNeo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j
 
Neo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph TechnologyNeo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph Technology
Neo4j
 
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life SciencesAstra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Neo4j
 
Graphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAIGraphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAI
Neo4j
 
Neo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptxNeo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptx
Neo4j
 
GraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptxGraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptx
Neo4j
 
Neo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with GraphNeo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with Graph
Neo4j
 
Smarter Knowledge Graphs For Public Sector
Smarter Knowledge Graphs For Public  SectorSmarter Knowledge Graphs For Public  Sector
Smarter Knowledge Graphs For Public Sector
Neo4j
 
GraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's FutureGraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's Future
Neo4j
 
Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24
Neo4j
 
ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024
Neo4j
 
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Neo4j
 
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Neo4j
 
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Neo4j
 
Démonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire ManagementDémonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire Management
Neo4j
 
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Neo4j
 
Démonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk ParisDémonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk Paris
Neo4j
 
The Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening SessionThe Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening Session
Neo4j
 
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
Neo4j
 
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Neo4j
 
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalkNeo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j
 
Neo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph TechnologyNeo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph Technology
Neo4j
 
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life SciencesAstra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Neo4j
 
Ad

Recently uploaded (20)

AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 

Role-Based Access Control (RBAC) in Neo4j

  • 1. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. Role Based Access Controls (RBAC) in Neo4j Jeff Tallman [email protected] Field Engineer/Pre-Sales Engineering
  • 2. © 2022 Neo4j, Inc. All rights reserved. 2 Role Based Access Controls (RBAC) • Understand the levels of RBAC supported • RBAC basics for data access • RBAC roles for separation of duties (DBA vs. SSO) • RBAC roles for developers & GDS execution
  • 3. © 2022 Neo4j, Inc. All rights reserved. RBAC Privileges Privileges operate only on roles - not user/logins • Can only be granted to roles - you can’t grant a privilege to a specific user name Changes take place immediately • Privileges are not cached - so no need to disconnect/reconnect or “grant all to null” to flush cache as with other DBMS’s Roles & Privileges are stored in the system database • Make sure you back it up • If copying a database to a new system, make sure you backup with --include_metadata option Databases as containers • One concept that may be difficult for users of MS SQL, et al to grasp is that each database in Neo4j is a completely separate entity • For example, query processing takes place within the context of a database ◦ Which is why cross-database queries are not supported (except via Fabric) • However, roles and permissions granted to roles (including graph-privileges) are stored in system
  • 4. © 2022 Neo4j, Inc. All rights reserved. Native Roles PUBLIC • The default role. Every new user or role will inherit this role. • Access to the default/home database. • Allows executing procedures & user-defined functions with the users own privileges. reader • A typical read-only role. editor • A regular user with read/write access to the database, write access limited to creating and changing existing properties,node labels and relationships. publisher • A user traverse,read and write on the data graph Architect • A user who can manage indexes and constraints admin • A superuser, database administrator 4 https://neo4j.com/docs/operations-manual/current/authentication-authorization/built-in-roles/ (matrix below from docs is generally correct but not exactly precise - see later slides)
  • 5. © 2022 Neo4j, Inc. All rights reserved. Privilege Categories • Roles ◦ Typical RBAC roles - user defined or system predefined • dbms-privilege ◦ Privileges that span the database instance and are not able to be restricted to a single database or role • database-privilege ◦ Admin or access privileges than can be assigned to a particular database at the database level • graph-privilege ◦ Privileges are that can be granted within a single database
  • 6. © 2022 Neo4j, Inc. All rights reserved. General Syntax GRANT • Allows access DENY • Blocks access • Take precedence over all other granted privileges that the user may have no matter what other roles may have the privilege • In other words, denying any privilege to PUBLIC …..denies it for everyone no matter if admin or not…or if granted privilege on a different role…. o So be very, very careful if denying a privilege to PUBLIC REVOKE • Removes a previously granted or denied privilege Graph = Database • HOME GRAPH o The user’s “home database” • GRAPH <graphname>[,<graphname>[, …]] o The listed database or databases ENTITY • NODES • RELATIONSHIPS • ELEMENTS - both NODES & RELATIONSHIPS <role>[, <role>[, …]] • A list of user defined or predefined system roles [GRANT|DENY] graph-privilege ({proplist}) ON {HOME GRAPH | GRAPH[S] {* | name[, ...]}} [entity] TO role[, ...] REVOKE ([GRANT|DENY]) graph-privilege ({proplist}) ON {HOME GRAPH | GRAPH[S] {* | name[, ...]}} [entity] FROM role[, ...] DENY READ { taxPayerID } ON GRAPH protegrity NODES Customer TO reader ; SHOW PRIVILEGES [YIELD <col list> | *]; SHOW ROLE <rolename> PRIVILEGES [AS COMMANDS];
  • 7. © 2022 Neo4j, Inc. All rights reserved. DBMS Level Privileges Hierarchy
  • 8. © 2022 Neo4j, Inc. All rights reserved. Database Privilege Hierarchy
  • 9. © 2022 Neo4j, Inc. All rights reserved. Graph Privileges and Hierarchy
  • 10. © 2022 Neo4j, Inc. All rights reserved. Separation of Duties - DBMS Management DBA’s (dba_role) • Manage and monitor the DBMS • Manage transactions (kill run away queries) • Do not manage database schema or data itself other than perform backups/restores Operations DBA (operations_role) • Monitor the DBMS • Manage transactions (kill run away queries) SSO (sso_role) • Manage logins/users • Manage system roles Database Admin (dbadmin_role) • Manage access to a database • Manage permissions within a database • Manage roles for a database • Note that all of the above can only be controlled at the DBMS level vs. individual database o So granting this privilege allows the role to allow access and manage roles for other databases as well… o ….if undesirable, then SSO has to be involved for any of these operations. (admin) Dba_role Oper_role SSO dbamdin All DBMS Privileges  Database Management   Create | Drop | Alter database   ? Stop | Start database    Set database access   ? Exec Admin Procedure   ? Show transaction    db Terminate transaction    db Transaction management    db Privilege management   ? Assign privilege   ? Remove privilege   ? Show privilege   ?
  • 11. © 2022 Neo4j, Inc. All rights reserved. Separation of Duties - Roles & Users DBA’s (dba_role) • Manage and monitor the DBMS • Manage transactions (kill run away queries) • Do not manage database schema or data itself other than perform backups/restores Operations DBA (operations_role) • Monitor the DBMS • Manage transactions (kill run away queries) SSO (sso_role) • Manage logins/users Database Admin (dbadmin_role) • Manage access to a database • Manage permissions within a database Developer & GDS Users (developer_role) • Can create schema components • Able to kill their own queries (admin) Dba_role Oper_role SSO dbamdin Role management   ? Create | Drop | Rename role   ? Assign | Remove role   ? Show role   ? User management   Create | Drop | Rename | Alter user   Set passwords   Set user home database   Set user status   Show user   Impersonate  ? ?
  • 12. © 2022 Neo4j, Inc. All rights reserved. Separation of Duties - Database Schema System predefined roles • Can access any database • admin role can do anything • architect and publisher can do anything schema-wise except grant access Database Admin (dbadmin_role) • Manage access to a database • Manage permissions within a database Developers (developer_role) • Can create schema components • Able to kill their own queries GDS Users (gds_role) • Able to create new labels & relationship types • Able to create new properties • May need to be able to create indexes architect publisher editor dbadmin Developer GDS User App User Sched Job CREATE INDEX      ? DROP INDEX      ? SHOW INDEX      ? INDEX MANAGEMENT      CREATE CONSTRAINT     ? DROP CONSTRAINT     ? SHOW CONSTRAINT     ? CONSTRAINT MANAGEMENT     CREATE NEW LABEL      ? CREATE NEW RELATIONSHIP TYPE      ? CREATE NEW PROPERTY      ? NAME MANAGEMENT      ? ALL DATABASE PRIVILEGES   ACCESS ON DATABASE * (all databases)    (lacks access priv)
  • 13. © 2022 Neo4j, Inc. All rights reserved. architect publisher editor dbadmin Developer GDS User App User Sched Job TRAVERSE         READ         MATCH         CREATE         DELETE       ? ? SET LABEL       ? ? REMOVE LABEL       ? ? SET PROPERTY         MERGE         WRITE       ? ? ALL GRAPH PRIVILEGES    EXECUTE PROCEDURE EXECUTE BOOSTED PROCEDURE ? ? ? ? EXECUTE USER DEFINED FUNC EXEC BOOSTED UDF ? ? ? ? Separation of Duties - Graph Privileges Database Admin (dbadmin_role) • Manage access to a database • Manage permissions within a database Developers (developer_role) • Can create schema components • Able to kill their own queries GDS Users (gds_role) • Able to create new labels & relationship types • Able to create new properties • May need to be able to create indexes Application User (<user defined roles + PUBLIC>) • Read/Write or Read-Only as necessary • Can’t create schema components • Able to kill their own queries < ----------------------- (PUBLIC) ----------------------- > < ----------------------- (PUBLIC) ----------------------- >
  • 14. © 2022 Neo4j, Inc. All rights reserved. Creating a developer role (sample) CREATE ROLE developer_role; GRANT INDEX MANAGEMENT ON DATABASES * TO developer_role; GRANT CONSTRAINT MANAGEMENT ON DATABASES * TO developer_role; GRANT NAME MANAGEMENT ON DATABASES * TO developer_role; //GRANT ALL PRIVILEGES ON DATABASES * TO developer_role; GRANT ALL GRAPH PRIVILEGES ON GRAPHS * TO developer_role This would be a mistake!
  • 15. © 2022 Neo4j, Inc. All rights reserved. Impersonation: A key aspect of RBAC Two critical reasons for impersonation • Enterprise systems with middle tier components or microservices often need to act on the behalf of other logins o Disconnecting/Reconnecting at every user change is error prone and excessive overhead • Testing or debugging security controls is almost impossible unless you can mimic other users Currently supported ONLY in language API’s only • No cypher equivalent to SQL’s “set session authorization” • In the API, it is part of the session configuration • Sooo…you can not test impersonation/security via cypher-shell or browser Grant to impersonate specific users • If you grant permission to * …..user can become “neo4j” with admin role • …or may end up getting elevated privileges GRANT IMPERSONATE [(*)] ON DBMS TO role[, ...] GRANT IMPERSONATE (user[, ...]) ON DBMS TO role[, ...]
  • 16. © 2022 Neo4j, Inc. All rights reserved. Separation of Duties - DBA Creates DBMS DBA role • Can create/drop/alter databases • Can execute amin procedures • Can execute boosted procedures that are named dbms.* Creates DBMS Oper role • Complements DBA role • Can be assigned to operations staff that we don’t want to be able to create/drop databases • Can stop/start any database • Can see/kill transactions from any user Creates a DBMS DBA user • Has both dba_role and oper_role • Does not have access to any database except system o Access to system is due to fact it is user’s “home database” o DBA can see database exists, but attempts to use the database will fail • As a result, cannot see any user data :use system; CREATE ROLE dba_role IF NOT EXISTS; GRANT CREATE DATABASE ON DBMS TO dba_role; GRANT DROP DATABASE ON DBMS TO dba_role; GRANT ALTER DATABASE ON DBMS TO dba_role; GRANT EXECUTE ADMIN PROCEDURES ON DBMS to dba_role; GRANT EXECUTE BOOSTED PROCEDURES dbms.* ON DBMS to dba_role; CREATE ROLE oper_role IF NOT EXISTS; GRANT STOP ON DATABASE * TO oper_role; GRANT START ON DATABASE * TO oper_role; GRANT TRANSACTION MANAGEMENT ON DATABASE * TO oper_role; CREATE USER ima_dba IF NOT EXISTS SET PLAINTEXT PASSWORD "ima_dba" SET PASSWORD CHANGE NOT REQUIRED SET STATUS ACTIVE SET HOME DATABASE system ; GRANT ROLE dba_role TO ima_dba; GRANT ROLE oper_role TO ima_dba;
  • 17. © 2022 Neo4j, Inc. All rights reserved. Separation of Duties - SSO Creates DBMS SSO role • Can manage users • Can manage roles • Can manage privileges • Can control access to databases There is a security hole/exposure w/ Role Mgmt • Problem is Neo4j does not allow for role exclusion o E.g. if you have role A, you cannot have role B • Consequently, an SSO role user can grant themselves DBA role….or dbadmin_role (next) and do things they shouldn’t • It would be automatically logged into security.log o So as long as the SSO didn’t have the ability to write to that log (e.g. not neo4j user), they couldn’t hide what they did o No real workaround - anyone with “ASSIGN ROLE” permission can become whomever they want :use system; CREATE ROLE sso_role IF NOT EXISTS; GRANT SET DATABASE ACCESS ON DBMS TO sso_role; GRANT PRIVILEGE MANAGEMENT ON DBMS TO sso_role; GRANT USER MANAGEMENT ON DBMS TO sso_role; GRANT ROLE MANAGEMENT ON DBMS TO sso_role; CREATE USER ima_sso IF NOT EXISTS SET PLAINTEXT PASSWORD "ima_sso" SET PASSWORD CHANGE NOT REQUIRED SET STATUS ACTIVE SET HOME DATABASE system ; GRANT ROLE sso_role TO ima_sso;
  • 18. © 2022 Neo4j, Inc. All rights reserved. Separation of Duties - DBAdmin Creates DBAdmin role • Can do anything within the specified database • Can modify schema o create indexes/constraints o Create new labels, relationship types, property names • Can read/write data • Can see/kill user processes for this database only There are several security holes/exposures • Problem is Neo4j does role/privilege/access management at a per database level • Which then also exposes the role management hole • Workarounds o Again, it is audited in the security.log o Don’t grant dbadmins this permission - or grant only for a short time (when designing security layer) • Otherwise restrict to sso_role :use system; CREATE ROLE custdb_dbadmin_role IF NOT EXISTS; GRANT ALL DATABASE PRIVILEGES ON DATABASE custdb TO custdb_dbadmin_role; GRANT ALL GRAPH PRIVILEGES ON GRAPHS custdb TO custdb_dbadmin_role; GRANT TRANSACTION MANAGEMENT ON DATABASE custdb TO custdb_dbadmin_role; // We will assume this is not multi-tenancy, therefore we // will trust individual dbadmins to be able to create roles // and assign privileges - but not be able to manage users GRANT SET DATABASE ACCESS ON DBMS TO custdb_dbadmin_role; GRANT PRIVILEGE MANAGEMENT ON DBMS TO custdb_dbadmin_role; GRANT ROLE MANAGEMENT ON DBMS TO custdb_dbadmin_role;
  • 19. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 19 Thank you! Contact us at [email protected]