Создание постоянных пользователей в CouchDB - PullRequest
60 голосов
/ 10 сентября 2010

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

Ответы [ 3 ]

90 голосов
/ 21 июня 2011

Сначала вы помещаете пользователя в базу данных _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 документ пользователя должен выглядеть следующим образом: </p>

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

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

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

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

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

17 голосов
/ 10 сентября 2010

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

0 голосов
/ 15 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...