Я читалhttp://guide.couchdb.org/draft/security.htmlи
и предыдущий вопрос Авторизация CouchDB на основе -базы данных иhttp://wiki.apache.org/couchdb/Security_Features_Overview
В настоящее время я использую Apache CouchDB 1.2.0, и через футон добавление администратора приводит к добавление пользователя по адресу _users например
_id
org.couchdb.user:stackoverflow
_rev
1-b9f223532b662d4ac52d14082d81e6a5
name
stackoverflow
password
null
roles
[ ]
type
user
Итак первый вопрос почему admin добавляется как тип user а не admin вызывает недоумение. Эти пользователи являются администраторами, так как они могут делать что угодно в любой базе данных, и роль пуста, НО я защитил документ пользователей _с ролями
["admin"]
в качестве единственных участников, и только администраторы могут получить доступ к этому (, даже если их роль в документ _пользователей пуст ).
Эта защита не позволяет создавать новых «обычных» пользователей, поэтому команда футон «регистрация» вернет ошибку регистрации. :У вас нет прав на доступ к этой базе данных.
Я думаю, что эта установка является единственно логичной. Почему вы хотите, чтобы кто-нибудь мог создать пользователя в вашей базе данных??
Даже если вы укажете доступ на чтение в базе данных только для одного администратора, каждый администратор может получить к ней доступ
(
" admins" : {
"names" : ["guru"],
"roles" : ["boss"]
},
"readers" : {
"names" : ["guru"],
"roles" : ["boss"]
}
}
описанный выше случай не повлияет на вновь созданного администратора stackoverflow, как в приведенном выше примере.
Итак, я предполагаю, что администраторы, созданные с помощью футона, могут делать все и что угодно независимо от этого. Единственная запутанная логическая часть — это _пользовательские документы, где у них нет специального типа (, они являются пользователями )или специальной ролью.
Итак, вернемся к конкретному вопросу: -при добавлении администратора через футон, почему он не помечен как администратор в _пользовательском документе и как CouchDB из этого документа определяет, что он является системным администратором? -Если вы хотите создать обычного пользователя БЕЗ разрешения ему зарегистрироваться (через футон или прямой HTTP-запрос ), вы должны защитить документ пользователя _. Но как бы вы создали себе пользователя для чтения/записи в своей собственной базе данных? -Поскольку пользователь (на CouchDB Docs )будет иметь права на чтение/запись в БД, но не возможность создавать проектные документы, как он может действительно эффективно использовать ее, поскольку представления потребуются всем, кто разрабатывает с использованием БД?
Должна быть возможность иметь обычный, простой мультихостинг без ущерба для безопасности, поскольку наhttp://www.iriscouch.com/есть общий CouchDB, поэтому я просто не понимаю, насколько логически вы бы структурировали простой сервис, где у пользователя есть свой собственный базе данных и может делать что угодно , но только с этой базой данных. Поскольку роль администратора в любом случае является «пользователем», как бы вы отличили их от неадминистраторов в таблице пользователей _?