Création d’utilisateurs réguliers dans CouchDB

Comment puis-je créer des utilisateurs non-administrateurs réguliers dans CouchDB?

D’abord, vous mettez l’utilisateur dans la firebase database _users . L’ID du document doit être org.couchdb.user:username , par exemple

Avec CouchDB 1.2.0 ou version ultérieure, utilisez ceci:

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

CouchDB va hacher et saler le mot de passe du côté serveur et enregistrer les valeurs dans les champs password_sha et salt (voir ci-dessous).

Avec CouchDB <1.2.0, le 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 versions ultérieures utilisent PBKDF2 au lieu de aha & salt pour le hachage du mot de passe.

Ensuite, vous pouvez créer une authentification par firebase database en créant un document avec l’id _security dans une firebase database spécifique non versionnée, par exemple

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

Cela signifie qu’il y a 2 utilisateurs dans _users part admin dbadmin et dbreader . Cela devrait être le cas si vous êtes trop paresseux pour lire le document qui a déjà été proposé.

Le wiki CouchDB contient un court article sur les fonctionnalités de sécurité de CouchDB et sur la façon de configurer un “lecteur” qui ressemble à un utilisateur dans une firebase database relationnelle.

Je pense que vous devez mettre en place une structure Web pour le faire comme le font de nombreux sites. Les rôles d’administration Couchdb ne fonctionnent pas enregistrement par enregistrement, donc si vous créez un lecteur capable de lire les profils ou la table de compte, ils peuvent lire les enregistrements.