# REVOKE wird nicht durchgeführt



## Alex_winf01 (14. Dez 2007)

Ich habe folgendes Problem:

in der H2-Doku steht ein Beispiel, wie ich die Rechte von Anwendern setzen kann:


```
REVOKE SELECT ON TEST FROM READONLY
```

Dabei steht das Select für das jeweilige Recht, Test ist die Datenbank und Readonly ist der Anwender. Also habe ich folgenden Befehl abgesetzt:


```
REVOKE INSERT on patient from jemand
```

Ich bekomme jetzt die Fehlermeldung, dass das Recht nicht gefunden werden kann. :cry:  Ich weiss nicht, was ich da Falsch mache, da die Tabelle Patient besteht und auch der User jemand besteht.


----------



## semi (15. Dez 2007)

Mit Revoke entziehst du dem User ein bestimmtes Recht. Falls der Benutzer dieses Recht nicht hat, gibt es 
eine entsprechende Fehlermeldung.


Erstelle zum Test einen neuen User 'GAST'.

```
CREATE USER gast PASSWORD 'gast'
```

Jetzt logge dich auf einer zweiten H2-Console als Gast ein und versuche ein SELECT 

```
SELECT * FROM Patient
```
Es sollte eine Fehlermeldung kommen. Der User 'Gast' hat keine Rechte.

Jetzt wieder auf die Console, wo du als Admin angemeldet bist und dem User 'GAST' die Rechte zuweisen.

```
GRANT SELECT ON Patient TO GAST
```
und schau dir die Rechte an.
	
	
	
	





```
SELECT * FROM INFORMATION_SCHEMA.RIGHTS
```

Versuche als GAST wieder ein SELECT

```
SELECT * FROM Patient
```
Diesmal geht's.

Zurück zur Admin-Console und die Rechte wieder entziehen

```
REVOKE SELECT ON Patient FROM GAST;
SELECT * FROM INFORMATION_SCHEMA.RIGHTS
```

Jetzt wieder zur Console, wo du als GAST eingelogt bist und das gleiche Select-Statement
absetzen.

```
SELECT * FROM Patient
```
Keine Rechte, nix SELECT.


----------



## Alex_winf01 (17. Dez 2007)

@ semi

Danke. Man sollte lesen können. :shock:


----------

