Neo4j – Welcher Account ist meinem am ähnlichsten?

Ausgehend von einem Benutzer gegen alle anderen Personen im Unternehmen:

Start= der ausgangsaccount

Other: Rest vom AD

 

Finden von Usern mit gleichen Eigenschaften über Gruppen

Wenn u ein User ist:

Match (u:i635780027198352907) where id(u) =(108353) with u match p= u<-[:rel_member*0..]
-(gg:i635780027198352907)-[:rel_member*0..]->(n{type:"person"}) where not (gg.name = 
"domänen-benutzer" or gg.name = "benutzer" or gg.name = "root" or gg.name="~zz_8man%") 
and not id(n) = id(u) return n.name, id(n),count(nodes(p)) as gg order by gg DESC limit 50;

 

 

Wenn u eine Gruppe ist: Jeder User einer Gruppe gegen jedes Mitglied

ES gilt herauszufinden, welcher User mit allen anderen Accounts der Gruppe die wenigsten Gemeinsamkeiten hat. Eigentlich sollte der dann evtl keine Rechte an dem Verzeichnis haben.

start u=node(108678) match u-[:rel_member*0..]->(x{type:"person"}) 
with x, u match p=x<-[:rel_member*0..]-gg-[:rel_member*0..]->u using 
Index x:i635780027198352907(type) where not (gg.name = "domänen-benutzer" 
or gg.name = "benutzer" or gg.name = "root" or gg.name = "Authenticated Users" 
or gg.name = "everyone") return x.name, count(nodes(p)) as gg order by gg DESC ;

 

 

 

 

—————————

Darstellen über welche Pfade die User miteinander zusammenhängen:

start u=node(132), n=node(129), gg=node(31152) match p= u<-[:rel_member*0..]
-gg-[:rel_member*0..]->(n) where not id(n) = id(u) return length(p),extract
(x in nodes(p) | x.name) as gname;

 

 

 

 

 

 

<<Tabelle für Kollegencheck.xlsx>>

 

————————————-

Erkennung von gleichen usern über die Rechte an Verzeichnissen-

U= User

Die Ausschlussklauseln müssen noch optimiert werden. Am besten, dass z.B. Vollzugriff oder administrative accounts ausgeschlossen werden

Andere Kriterien wären auch sinnvoll.

Man sollte es als option haben, ob die Analyse mit Einschluss der Dom-Benutzer erfolgt oder nicht. Auch ob die Analyse nur über Verzeichnisse geht, die wirklich explizite Rechte haben und nicht über alle

 

start u=node(101) match p= u<-[:rel_member*]-(x)<-[:rel_ace]-(m2)-
[:rel_right0{explicit:1}]->(u2)<-[:rel_right0{explicit:1}]-(m1)-
[:rel_ace]->(x2)-[:rel_member*]->(u1{type:"person"}) where not x.name=
"domänen-admins" and not x2.name="domänen-admins" and not x2.name="domänen-benutzer" 
and not x.name="domänen-benutzer" and not x.name="administratoren" and not x2.name=
"administratoren" return u.name,u1.name, id(u1), count(nodes(p)) as gg order by gg DESC limit 50;

 

 

 

 

 

 

 

 

 

Vorbereitung von Rollengruppen

Frage: gibt es Pfade mit identischen Rechten, wo es sich lohnen würde, Rollen drauf zu berechtigen

-> Pfade mit gleichen Rechten

 

Verzeichnisse die keine Verbindung haben (läuft noch nicht richtig)

start n=node(7) MATCH (v:i635491584460610903) where not 
(v)<-[:rel_right0]-(ACE)-[:rel_ace]->(u)-[:rel_member*..]->
(n) return v.path limit 100;


START n=node(*)

MATCH n<-[r?]-parent

WITH n, count(parent) AS parents

WHERE parents = 0

RETURN n, parents;

 

 

Translate »