我希望對包含在Neo4j數據庫中的數據實施安全性,使其達到單個節點和/或關係的級別。保護Neo4j查詢訪問的數據
大部分數據將會提供給所有用戶,但有些數據將受到用戶角色的限制。我可以爲要限制的數據添加屬性或標籤。
我想允許用戶針對數據運行自定義密碼查詢,但隱藏用戶未被授權查看的任何數據。
如果我必須從外面做一些事情,那麼我不僅必須過濾返回的結果,還必須解析並限制或修改針對數據運行的所有查詢,以防止用戶編寫查詢哪些數據作用於他們不被允許查看。
理想的解決方案是,如果存在低級掛鉤,它允許在密碼查詢作用於這些記錄之前攔截讀取節點和關係。攔截器將執行安全檢查,如果它們失敗,那麼它的行爲就好像該節點或關係根本不存在。即相同的密碼查詢根據誰運行它會有不同的結果。這將適用於所有可能的查詢,例如計數(n)不僅僅是那些返回節點/關係的。
可以這樣做嗎?如果它不被支持,那麼在代碼中是否有合適的位置可以添加這樣的安全過濾器,還是需要進行很多代碼更改?
謝謝,達蒙
這肯定不是目前支持的Neo4j與Cypher支架,並且不太可能的東西可以添加平凡。您可能會實現自己的外觀和查詢API,而不是通過Cypher爲用戶提供直接訪問。 –