Hallo Antman,
Das mit der GRANT OPTION ist schon klar. Ich verstehe nur nicht warum B das REVOKE auf D setzen kann obwohl das GRANT von C kommt.
Warum sollte er dies nicht können, wenn er über das entsprechende Recht verfügt?
Stelle Dir ein beliebiges Rechtesystem (nicht notwendigerweise Datenbanken) vor:
Benutzer A und B verfügen über die Rechte, dem gleichen Benutzerkreis die gleichen Rechte zu erteilen und zu entziehen.
Somit ist es zunächst selbstverständlich, dass Benutzer B einem x-beliebigen Benutzer aus diesem Benutzerkreis ein Recht entziehen kann, dass Benutzer A gewährt hat.
Es ist also erforderlich, dass Benutzer A Benutzer B das Recht entzieht, Rechte zu entziehen, die Benutzer A gewährt hat. Dies könnte Benutzer A allgemein vornehmen, aber auch speziell für bestimmte gewährte Rechte. (Beispiel: NDS, von Chris bereits angeführt).
Beachte, dass eine Rechte-Administration extrem erschwert würde, wenn nur _der_ Benutzer ein Recht entziehen könnte, der es auch gewährt hat.
Freundliche Grüße
Vinzenz