Warum ich das SELECT-Privileg auf diese benötigen:UPDATE und SELECT
UPDATE Sailors S SET
S.rating = S.rating - 1
Während ich brauche es nicht für diese Abfrage:
UPDATE Sailors S
SET S.rating = 8
Warum ich das SELECT-Privileg auf diese benötigen:UPDATE und SELECT
UPDATE Sailors S SET
S.rating = S.rating - 1
Während ich brauche es nicht für diese Abfrage:
UPDATE Sailors S
SET S.rating = 8
Im ersten Sie die Auswahl
= S.rating - 1
In der zweiten Sie nicht die Auswahl
= 8
SELECT = GRANTEE können Daten für eine oder mehrere der abrufen Säulen.
INSERT = GRANTEE kann Daten für neue Zeilen für eine oder mehrere Spalten bereitstellen.
UPDATE = GRANTEE kann vorhandene Daten für eine oder mehrere Spalten ändern.
Im ersten sind Sie im Wesentlichen Einstellung S.rating = SELECT S.rating - 1 FROM Sailors S
In der zweiten sind Sie nur S.rating Wert (8)
It = Einstellung sieht aus wie du bist Lesen von S in der ersten Abfrage (der zweiten S.rating), wo Sie wie in der zweiten Abfrage nur Daten in S schreiben. Um Daten zu lesen, benötigen Sie SELECT-Berechtigungen.
in erst ‚S.rating -1‘ dies ist unbekannt Oracle und Oracle-Motor geht an den Tisch von Alias S (seine Matrosen in Ihrem Fall) beziehen und
a) Abfrage Bewertung von ihm und
b) dann subtrahiere 1 davon
für Punkt a erfordert es select privilege.
Ich denke, das hängt von der Datenbank ab (in der Praxis hat jeder mit Update-Privilegien ausgewählte Rechte). Aber die erste Abfrage muss einen Wert lesen, daher mag das der Grund sein. –
Welches DBMS benutzen Sie? –