Utilizando el estándar SQL - se han hecho repetidamente en PosgreSQL y Oracle - Deseo conceder una SELECT para todas las tablas de SCHEMA1 exceptosecret
a user1en MySQL, revocar un privilegio después de la concesión de un privilegio general
grant select on schema1.* to user1;
revoke select on schema1.users from user1;
recibió error:
ERROR 1147 (42000): There is no such grant defined for user 'user1' on host '%' on table 'secret'
¿Qué estoy haciendo mal?
Evidentemente esto es comportamiento estándar de MySQL !!
Hace que sea más fácil entender la falta de sofisticación de seguridad en las aplicaciones que utilizan MySQL: configurar la seguridad correcta del usuario en MySQL es increíblemente difícil.
Debe otorgar privilegios SELECT para cada tabla, tabla por tabla. – Devart
¿Estás seguro? El estándar ANSI dice que lo que estoy haciendo es correcto. –