Подтвердить что ты не робот

Создание обычных пользователей в CouchDB

Как я могу создать обычных пользователей, не являющихся администраторами в CouchDB?

4b9b3361

Ответ 1

Сначала вы помещаете пользователя в базу данных _users. Идентификатор документа должен быть org.couchdb.user:username, например.

С CouchDB 1.2.0 или новее используйте это:

{
    "_id": "org.couchdb.user:dbreader",
    "name": "dbreader",
    "type": "user",
    "roles": [],
    "password": "plaintext_password"
}

CouchDB будет хешировать и солить пароль для вас на стороне сервера и сохранить значения в полях password_sha и salt (см. ниже).

С CouchDB < 1.2.0 пользовательский документ должен выглядеть следующим образом:

{
    "_id": "org.couchdb.user:dbreader",
    "name": "dbreader",
    "type": "user",
    "roles": [],
    "salt": "54935938852dd34f92c672ab31e397cedaf0946d",
    "password_sha": "42253ea4461a604f967813aaff90b139d7018806"
}

Обратите внимание, что CouchDB 1.3.0 и более поздние будут использовать PBKDF2 вместо аха и соли для хэширования пароля.

Затем вы можете создать для каждой проверки подлинности базы данных, создав документ с id _security в конкретной базе данных, которая не является версией, например.

{
    "admins": {
        "names": ["dbadmin"],
        "roles": ["editor"]
    },
    "readers": {
        "names": ["dbreader"],
        "roles": ["reader"]
    }
}

Это означает, что в _users есть 2 пользователя, кроме admin dbadmin и dbreader. Это следует делать, если вы слишком ленивы, чтобы прочитать документ, который уже был предложен.

Ответ 2

В документации CouchDB есть небольшая статья о функциях безопасности CouchDB и о том, как настроить "читателя", который похож на пользователя в реляционной базе данных.

Ответ 3

Чтобы создать обычного пользователя в CouchDB> 2.0.0, необходимо выполнить запрос REST.

curl -X PUT \
  https://yourhost.com:5984/_node/[email protected]/_config/admins/scoot \
  -H 'Authorization: Basic dXN1YXJpb2FkbWluOnBhc3NhZG1pbg==' \
  -H 'Content-Type: text/plain' \
  -d '"tiger"'

Пожалуйста, измените параметры:

  • yourhost.com
  • последний сегмент scoot в URL - это ваше имя пользователя
  • Авторизация должна быть базовой авторизацией вашего администратора
  • желаемый пароль (например, тигр) должен быть заключен в двойные кавычки

Примечание: nonode @nohost - это метка по умолчанию для одного узла CouchDB

После создания пользователя вы можете использовать Fauxton для защиты любой базы данных.

Смотрите также: https://docs.couchdb.org/en/stable/intro/security.html?highlight=create%20user#creating-new-admin-user

Ответ 4

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