mysql: делегирование прав доступа к базе данных с опцией предоставления - PullRequest
1 голос
/ 05 ноября 2010

У меня есть общий доступ к настройке веб-сервера среди друзей. Каждый сайт имеет свою собственную базу данных. Я хотел бы иметь возможность делегировать управление пользователями для каждой из этих баз данных владельцу базы данных. Таким образом, они могут создавать учетные записи для своих веб-приложений для доступа к своим конкретным таблицам, но не бродить, если конкретное приложение взломано.

Для дальнейшего пояснения на примере я хотел бы что-то вроде этого:

Database server at : db.hosting.coop
db root user : root@db.hosting.coop <full permissions as root>

website and database 1: foo.com
foo.com db user : foo@db.hosting.coop <full permissions on database foo, with ability to grant user access to database foo, granted by root@db.hosting.coop>
foo.coms rails app db user : foorails@localhost <select,insert,update,delete on foo.*, granted by foo@db.hosting.coop>

website and database 2: bar.com
bar.com db user : bar@% <full permissions on database foo, with grant, granted by root@db.hosting.coop>
bar.coms php app db user : bar_website@localhost <select,insert,update,delete on bar.*, granted by bar@db.hosting.coop>

1 Ответ

1 голос
/ 05 ноября 2010

Как 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'@'%'

аналогично другим

...