web-dev-qa-db-ja.com

CouchDBで通常のユーザーを作成する

CouchDBで通常の非管理者ユーザーを作成するにはどうすればよいですか?

61
IDanil

まず、ユーザーを_usersデータベースに配置します。ドキュメントのIDは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以降では、パスワードのハッシュにaha&saltの代わりにPBKDF2が使用されることに注意してください。

次に、バージョン管理されていない特定のデータベースにID _securityのドキュメントを作成することにより、データベースごとの認証を作成できます。

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

これは、admin dbadmindbreaderのほかに_usersに2人のユーザーがいることを意味します。既に提案されているドキュメントを読むのが面倒な場合には、そうする必要があります。

91

CouchDBのドキュメントには、CouchDBの セキュリティ機能 と、 "reader"の設定方法に関する短い記事があります。リレーショナルデータベースのユーザー。

17