본문 바로가기
Cloud SIEM 제작/Graph DB(Neo4j)

Neo4j 기본 명령어 모음

by LIZ0904 2022. 10. 25.
반응형

로그


{
        "_id" : ObjectId("63526ff1ea3bbfc62bff9f10"),
        "historyId" : "635237545b323455e1b42dc2",
        "nrn" : "nrn:PUB:IAM::2919688:SubAccount/47a8c370-5033-11ed-80c0-246e96591594",
        "eventTime" : NumberLong("1666332500824"),
        "platformType" : "BOTH",
        "productName" : "IAM",
        "productDisplayName" : "Sub Account",
        "regionCode" : "",
        "regionDisplayName" : "Global",
        "resourceType" : "SubAccount",
        "resourceId" : "47a8c370-5033-11ed-80c0-246e96591594",
        "actionDisplayName" : "Login",
        "actionResultType" : "FAIL",
        "actionUserType" : "Sub",
        "actionSubAccountNo" : 58826,
        "sourceType" : "PORTAL",
        "sourceIp" : "211.108.30.234",
        "productData" : {
                "clientIpCountry" : "KR",
                "userAgent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
                "userName" : "ncp-log-collector",
                "loginAlias" : "sadacktion",
                "subAccountId" : "47a8c370-5033-11ed-80c0-246e96591594",
                "subAccountNo" : "58826",
                "memberNo" : "2919688",
                "isTwoSetFactorLogin" : "false",
                "clientIp" : "211.108.30.234",
                "loginLevel" : "1",
                "userType" : "SUBACCOUNT"
        }
}

 

명령어

Create 생성

//root, subaccount 노드 생성 

//create account 시 해당 로그 생성

CREATE (liz09045:Account{name:"liz09045@naver.com"})
CREATE (liz0904:SubAccount{name:'liz0904', no:'12345'})
CREATE (liz09045)-[:SubAccount]->(liz0904)
create(chosomang:SubAccount{name:'chosomang', no:'11111'})
CREATE (liz09045)-[:SubAccount]->(chosomang)
create(lee:SubAccount{name:'lee', no:'22222'})

//로그 노드 생성
create(log1:Log{name:'635237545b323455e1b42dc2', productName:'BOTH', productDisplayName:'Sub Account', actionDisplayName:'Login', actionDisplayName:'Login', actionSubAccountNo:'11111', sourceIp:'211.108.30.234'})

Relation 연결

//계정 노드 relation 연결

MATCH
(lee:SubAccount), 
(liz09045:Account)
WHERE lee.name='lee' and liz09045.name='liz09045@naver.com'
create (lee)-[r:SubAccount]->(liz09045)
return type(r)

 

//로그 노드와 사용자 계정 노드 연결
MATCH
(a:SubAccount), 
(b:Log)
WHERE a.name='chosomang' and b.name='635237545b323455e1b42dc'
create (a)-[r:LoginSuccess]->(b)
return type(r)

//새 로그 삽입 시 이전 로그와 새 로그 연결

MATCH (a:Log{name:'635237545b323455e1b42dcd'})
CREATE (a)-[r:Next]->(b:Log{name:'635237545b323455e1b42dce', actionDisplayName:'Login', actionResultType:'SUCCESS'})
RETURN type(r)

 

Delete 삭제

//relation delete 관계 삭제

MATCH (a:Log{name: '635237545b323455e1b42dc2'})-[r:Next]->(b:Log{name:'635237545b323455e1b42dcd'})

DELETE r

 

Match 출력 및 검색

//Next relation을 갖고 있는 relation의 정보 출력
MATCH (a)-[r:Next]->(b) RETURN r

 

//Log의 전체 개수 출력

MATCH (n:Log) RETURN count(*)

 

// Person 중 Tom으로 시작하는 모든 사람 이름을 찾는 명령어

MATCH (n:Person)
WHERE n.name STARTS WITH "Tom"
RETURN n.name

 

//id별로 찾기

MATCH (n) WHERE id(n) = 0 RETURN n

 

//로그 간의 최단 경로 찾기

MATCH
  (account:SubAccount {name: 'liz0904'}),
  (log:Log {name: '635237545b323455e1b42dcd'}),
  p = shortestPath((account)-[*..15]->(log))
RETURN p

 

Set 수정

//Next로 되어 있던 모든 Relation 명을 Parent로 변경

MATCH (a:Log)-[r:Next]->(b:Log)

SET r.name='Parent'

RETURN r.name

 

Neo4j 함수 목록

https://neo4j.com/docs/cypher-manual/current/functions/scalar/

 

Scalar functions - Neo4j Cypher Manual

Scalar functions return a single value.

neo4j.com

 

반응형

'Cloud SIEM 제작 > Graph DB(Neo4j)' 카테고리의 다른 글

Neo4j Graph Data Science(GDS) 개요  (0) 2023.01.04
Neo4j 사이퍼 쿼리  (0) 2023.01.03
Neo4j 기본 사용법  (0) 2022.09.16
Neo4j에 대해서 (개념/순위/특징/기능)  (1) 2022.09.16
그래프디비(Graph DB)란?  (1) 2022.09.16

댓글