Ответ 1
Вы правы, это сбивает с толку. Для получения дополнительной информации см. 0.11 "нарушение" .
Контроль чтения на одном документе невозможен; поле readers
предназначено для доступа ко всей БД. Для получения дополнительной информации загрузите свою базу данных в Futon и нажмите ссылку Security...
вверху.
Причина, по которой контроль чтения невозможен, заключается в том, что представления (map and reduce) могут извлекать информацию из всех документов в базе данных, поэтому, как правило, невозможно запретить пользователям просматривать личные данные в той или иной форме.
Для детального контроля доступа у вас есть два основных варианта:
- У вас есть приложение между вашими пользователями и БД. 99% веб-приложений, использующих MySQL, делают это уже (например, Ruby on Rails). Храните информацию ACL в БД, и ваше приложение предоставляет/отклоняет доступ на основе ACL.
- Сохранять выделенную базу данных для каждого пользователя. Возможно, вам придется изменить свою архитектуру, но, возможно, нет. Вы можете использовать репликацию с фильтром для копирования только пользовательских данных в свою базу данных. Затем он читает из своей базы данных и записывает в центральную базу данных.