Comment puis-je créer régulièrement, les utilisateurs non-administrateurs dans CouchDB?
Réponses
Trop de publicités?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é.
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.
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.