2010-11-04 23 views
1

J'ai une configuration de serveur Web partagée entre amis. Chaque site a sa propre base de données. J'aimerais pouvoir déléguer la gestion des utilisateurs pour chacune de ces bases de données au propriétaire de la base de données. De cette façon, ils peuvent créer des comptes pour leurs applications Web pour accéder à leurs tables spécifiques mais ne pas se promener si l'application spécifique est compromise.mysql: délégation d'autorisation utilisateur spécifique à une base de données avec option d'attribution

Afin de clarifier davantage à titre d'exemple, je voudrais quelque chose comme ceci:

Database server at : db.hosting.coop 
db root user : [email protected] <full permissions as root> 

website and database 1: foo.com 
foo.com db user : [email protected] <full permissions on database foo, with ability to grant user access to database foo, granted by [email protected]> 
foo.coms rails app db user : [email protected] <select,insert,update,delete on foo.*, granted by [email protected]> 

website and database 2: bar.com 
bar.com db user : [email protected]% <full permissions on database foo, with grant, granted by [email protected]> 
bar.coms php app db user : [email protected] <select,insert,update,delete on bar.*, granted by [email protected]> 

Répondre

1

En tant que root:

GRANT CREATE USER ON *.* TO 'foo'@'%'; 
GRANT ALL PRIVILEGES ON `foo.com`.* TO 'foo'@'%' WITH GRANT OPTION; 

Foo:

CREATE USER 'foorails'@'%' IDENTIFIED BY 'secret'; 
GRANT SELECT ON `foo.com`.* TO 'foorails'@'%' 

également avec d'autres

+0

Brillant. Je vous remercie. Travaillé exactement comme je l'espérais. – voxobscuro