Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Neptune-Datenzugriff-Richtlinienanweisungen verwenden Datenzugriffsaktionen, Ressourcen und Bedingungsschlüssel, denen jeweils das Präfix neptune-db:
vorangestellt ist.
Themen
- Verwenden von Abfrageaktionen in Neptune-Datenzugriff-Richtlinienanweisungen
- IAM-Aktionen für den Datenzugriff in Amazon Neptune
- IAM-Ressourcentypen für den Zugriff auf Daten in Amazon Neptune
- IAM-Bedingungsschlüssel für den Zugriff auf Daten in Amazon Neptune
- Erstellen von IAM-Datenzugriffsrichtlinien in Amazon Neptune
Verwenden von Abfrageaktionen in Neptune-Datenzugriff-Richtlinienanweisungen
Es gibt drei Neptune-Abfrageaktionen, die in Datenzugriff-Richtlinienanweisungen verwendet werden können, ReadDataViaQuery
, WriteDataViaQuery
und DeleteDataViaQuery
. Eine bestimmte Abfrage benötigt möglicherweise Berechtigungen, um mehr als eine dieser Aktionen auszuführen, und es möglicherweise nicht immer offensichtlich, welche Kombination dieser Aktionen zulässig sein muss, um eine Abfrage auszuführen.
Neptune ermittelt vor der Ausführung einer Abfrage die Berechtigungen, die für die Ausführung der einzelnen Schritte der Abfrage erforderlich sind, und kombiniert diese zu einem vollständigen Satz der Berechtigungen, die für die Abfrage erforderlich sind. Beachten Sie, dass dieser vollständige Satz von Berechtigungen alle Aktionen enthält, die die Abfrage möglicherweise ausführt. Dabei handelt es sich nicht notwendigerweise um den Satz von Aktionen, den die Abfrage tatsächlich für Ihre Daten ausführt.
Das bedeutet, dass Sie Berechtigungen für alle Aktionen bereitstellen müssen, die die Abfrage möglicherweise ausführt, um die Ausführung einer bestimmten Abfrage zu ermöglichen, unabhängig davon, ob die Abfrage diese Aktionen tatsächlich ausführt oder nicht.
Dies sind einige Beispiele für Gremlin-Abfragen, die dies im Detail zeigen:
-
g.V().count()
g.V()
undcount()
benötigen lediglich Lesezugriff, sodass die Abfrage insgesamt lediglich einenReadDataViaQuery
-Zugriff benötigt. -
g.addV()
addV()
muss überprüfen, ob ein Eckpunkt mit einer bestimmten ID vorhanden ist oder nicht, bevor ein neuer Eckpunkt eingefügt wird. Das bedeutet, dass die Abfrage einenReadDataViaQuery
- und einenWriteDataViaQuery
-Zugriff benötigt. -
g.V('1').as('a').out('created').addE('createdBy').to('a')
g.V('1').as('a')
undout('created')
benötigen lediglich Lesezugriff.addE().from('a')
benötigt jedoch sowohl Lese- als auch Schreibzugriff, daaddE()
die Eckpunkteto
undfrom
lesen muss und prüfen muss, ob bereits eine Kante mit derselben ID vorhanden ist, bevor eine neue Kante hinzugefügt wird. Die Abfrage benötigt daher insgesamt einenReadDataViaQuery
- und einenWriteDataViaQuery
-Zugriff. -
g.V().drop()
g.V()
benötigt lediglich Lesezugriff.drop()
benötigt einen Lese- und Löschzugriff, da Eckpunkte oder Kanten vor dem Löschen gelesen werden müssen. Daher benötigt die Abfrage insgesamt einenReadDataViaQuery
- und einenDeleteDataViaQuery
-Zugriff. -
g.V('1').property(single, 'key1', 'value1')
g.V('1')
benötigt lediglich Lesezugriff.property(single, 'key1', 'value1')
benötigt jedoch einen Lese-, Schreib- und Löschzugriff. Hier werden im Schrittproperty()
Schlüssel und Wert eingefügt, falls noch nicht im Eckpunkt vorhanden. Falls jedoch bereits vorhanden, wird der vorhandene Eigenschaftswert gelöscht und es wird ein neuer Wert eingefügt. Daher benötigt die Abfrage insgesamt einenReadDataViaQuery
-,WriteDataViaQuery
- undDeleteDataViaQuery
-Zugriff.Jede Abfrage, die den Schritt
property()
enthält, benötigtReadDataViaQuery
-,WriteDataViaQuery
- undDeleteDataViaQuery
-Berechtigungen.
Dies sind einige openCypher-Beispiele:
-
MATCH (n) RETURN n
Diese Abfrage liest alle Knoten in der Datenbank und gibt sie zurück. Hierfür wird lediglich ein
ReadDataViaQuery
-Zugriff benötigt. -
MATCH (n:Person) SET n.dept = 'AWS'
Diese Abfrage benötigt einen
ReadDataViaQuery
-,WriteDataViaQuery
- undDeleteDataViaQuery
-Zugriff. Sie liest alle Knoten mit der Bezeichnung 'Person' und fügt ihnen entweder eine neue Eigenschaft mit dem Schlüsseldept
und dem WertAWS
hinzu oder (wenn die Eigenschaftdept
bereits vorhanden ist) löscht den alten Wert und fügt stattdessenAWS
ein. Wenn der festzulegende Wertnull
ist, löschtSET
die Eigenschaft vollständig.Da die
SET
-Klausel in einigen Fällen möglicherweise einen vorhandenen Wert löschen muss, benötigt sie stetsDeleteDataViaQuery
-,ReadDataViaQuery
- undWriteDataViaQuery
-Berechtigungen. -
MATCH (n:Person) DETACH DELETE n
Diese Abfrage benötigt
ReadDataViaQuery
- undDeleteDataViaQuery
-Berechtigungen. Sie sucht alle Knoten mit der BezeichnungPerson
und löscht sie zusammen mit den Kanten, die mit diesen Knoten verbunden sind, und allen zugehörigen Bezeichnungen und Eigenschaften. -
MERGE (n:Person {name: 'John'})-[:knows]->(:Person {name: 'Peter'}) RETURN n
Diese Abfrage benötigt
ReadDataViaQuery
- undWriteDataViaQuery
-Berechtigungen. DieMERGE
-Klausel stimmt entweder mit einem angegebenen Muster überein oder erstellt es. Da ein Schreibvorgang erfolgen kann, wenn das Muster nicht übereinstimmt, sind Schreib- und Leseberechtigungen erforderlich.