Логика авторизации CouchDB?

Я читал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, поэтому я просто не понимаю, насколько логически вы бы структурировали простой сервис, где у пользователя есть свой собственный базе данных и может делать что угодно , но только с этой базой данных. Поскольку роль администратора в любом случае является «пользователем», как бы вы отличили их от неадминистраторов в таблице пользователей _?

5
задан Community 23 May 2017 в 11:55
поделиться