2012-03-20 7 views
17

¿Cómo puedo restringir una cuenta_usuario en la base de datos MySQL a tablas particulares? Ej:¿Cómo puedo restringir a un usuario de MySQL a tablas en particular?

UserName: RestrictedUser 
DatabaseName: db_Payroll 
TableName: 
    tb_Employees 
    tb_Users 
    tb_Payroll_YYMMDD 
    tb_Payroll_Processed 

Quiero restringir "RestrictedUser" a tb_Users y sólo tb_Employees y el resto de las mesas de db_Payroll que serán creados para su uso futuro está concedida a tener acceso.

Respuesta

27

Suponiendo que el usuario no tiene privilegios actuales, puede hacer lo siguiente

GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Users TO [email protected]'%' 
GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Employees TO [email protected]'%' 

Dependiendo de exactamente qué privilegios que desea otorgar al usuario, puede cambiar SELECT, INSERT, DELETE a otra cosa, por ejemplo, ALL PRIVILEGES.

Después, recuerde eliminar los privilegios para que entren en vigencia.

FLUSH PRIVILEGES; 
+3

No necesita 'FLUSH PRIVILEGES' después de usar' GRANT' o cualquier otra declaración de modificación de cuenta, solo si ha modificado las tablas de concesión directamente con DML. Consulte http://dev.mysql.com/doc/refman/5.5/en/privilege-changes.html –

4

Puede conceder acceso a las tablas individuales ejecutando:

GRANT ALL ON db_Payroll.tb_Users to [email protected]; 

y lo mismo para otras tablas. Use una lista de operaciones en lugar de ALL si corresponde.

No puede otorgar acceso a tablas individuales que aún no existen sin otorgar acceso a todas las tablas.

+0

"No puede otorgar acceso a tablas individuales que aún no existen sin otorgar acceso a todas las tablas". ese es mi problema principal, db_Payroll es usado por la aplicación de nómina, estoy creando una interfaz web usando un php y quiero asegurar la conexión sin escribir las configuraciones de conexión que fueron usadas por la aplicación de nómina. – aintgel

+5

Así que decida cuáles serán sus tablas y otorgue acceso a las apropiadas. Si está pensando en un diseño que implique crear tablas en tiempo de ejecución, ¡DETÉNGASE! No hagas eso. – duskwuff

Cuestiones relacionadas