Vaste gebruikers aanmaken in CouchDB

Hoe kan ik gewone, niet-beheerdersgebruikers maken in CouchDB?


Antwoord 1, autoriteit 100%

Eerst plaats je de gebruiker in de _usersdatabase. De ID van het document moet org.couchdb.user:usernamezijn, bijv.

Gebruik bij CouchDB 1.2.0 of hoger dit:

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

CouchDB zal hash & salt het wachtwoord voor u aan de serverzijde en sla de waarden op in de velden password_shaen salt(zie hieronder).

Met CouchDB < 1.2.0 het gebruikersdocument moet er als volgt uitzien:

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

Merk op dat CouchDB 1.3.0 en hoger PBKDF2 zullen gebruiken in plaats van aha & salt voor het hashen van het wachtwoord.

Vervolgens kunt u authenticatie per database maken door een document met id _security aan te maken in een specifieke database die geen versiebeheer heeft, bijvoorbeeld

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

Dit betekent dat er 2 gebruikers zijn in _usersnaast de admin dbadminen dbreader. Dat is voldoende voor het geval je te lui bent om het document te lezen dat al is voorgesteld.


Antwoord 2, autoriteit 19%

De CouchDB-documentatie bevat een kort artikel over de beveiligingsfunctiesvan CouchDB, en het bevat een sectie over het aanmaken van een nieuwe gebruiker.


Antwoord 3

Ik denk dat je een webframework voor moet zetten om dit te doen zoals veel sites doen. Couchdb-beheerdersrollen werken niet record voor record, dus als u een lezer maakt die de profielen of accounttabel kan lezen, kunnen ze record lezen.

Other episodes