73 votes

La création d'utilisateurs réguliers dans CouchDB

Comment puis-je créer régulièrement, les utilisateurs non-administrateurs dans CouchDB?

106voto

Gjorgji Taskovski Points 1010

Tout d'abord vous mettre l'utilisateur en _users de la base de données. L'ID du document doit être org.couchdb.user:username, par exemple

Avec CouchDB 1.2.0 ou tard utiliser ceci:

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

CouchDB sera de hachage et du sel le mot de passe pour vous sur le côté serveur et enregistrer les valeurs dans les champs password_sha et salt (voir ci-dessous).

Avec CouchDB < 1.2.0 du document utilisateur doit ressembler à ceci:

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

Notez que CouchDB 1.3.0 et, plus tard, va utiliser PBKDF2 au lieu de aha et du sel pour le hachage du mot de passe.

Ensuite, vous pouvez créer par la base de données d'authentification par la création d'un document avec l'id _security dans la base de données spécifique qui n'est pas un numéro de version, par exemple

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

Cela signifie qu'il y a 2 utilisateurs en _users en plus de l'admin dbadmin et dbreader. Cela devrait le faire dans le cas où vous êtes trop paresseux pour lire le document qui a déjà été suggéré.

21voto

Nikolaus Gradwohl Points 8296

Le CouchDB Wiki a un court article sur les fonctionnalités de sécurité de CouchDB et comment pour configurer un "lecteur" qui est-ce qui ressemble à un utilisateur dans une base de données relationnelle.

-13voto

Jim Points 31

Je pense que vous devez mettre un framework web en avant pour ce faire, la façon dont beaucoup de sites le font. Couchdb rôles d'administrateur ne fonctionnent pas sur un enregistrement par enregistrement de base, donc si vous créez un lecteur qui peut lire les profils ou de table compte qu'ils peuvent lire l'enregistrement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X