Was sind die Namensregeln? Ich kann nirgendwo eine Antwort finden. Kann ein Benutzername eine E-Mail-Adresse sein?
Costa
Benutzernamen können absolut jede UTF-8-Zeichenfolge sein. Dies ist beispielsweise der Grund, warum couchdb_peruserBenutzernamen gehasht werden müssen, um Datenbanknamen zu erstellen. Es gibt einige Einschränkungen, die Sie im Designdokument für die Benutzerdatenbank finden können : - Benutzernamen dürfen nicht mit einem Unterstrich beginnen _- Benutzernamen dürfen keinen Doppelpunkt enthalten : _ (Es ist 2019 immer noch schwierig, online eine Antwort darauf zu finden)
Leonid Shevtsov
Antworten:
99
Zuerst legen Sie den Benutzer in die _usersDatenbank. Die ID des Dokuments muss org.couchdb.user:usernamez
Verwenden Sie mit CouchDB 1.2.0 oder höher Folgendes:
Beachten Sie, dass CouchDB 1.3.0 und höher PBKDF2 anstelle von aha & salt zum Hashing des Kennworts verwendet.
Anschließend können Sie eine Authentifizierung pro Datenbank erstellen, indem Sie ein Dokument mit der ID _security in einer bestimmten Datenbank erstellen, die nicht versioniert ist, z
Dies bedeutet, dass sich _usersneben dem Administrator dbadmin und dbreader 2 Benutzer befinden . Dies sollte der Fall sein, wenn Sie zu faul sind, um das bereits vorgeschlagene Dokument zu lesen.
Ich kann die Namenskonventionen nicht herausfinden. Gibt es Einschränkungen hinsichtlich des Benutzernamens? Außer dem Präfix org.couchdb.user:
Costa
So werden Benutzerkennwörter von jedem gesehen, wenn Sie sie speichern? und wie man sie hasht?
Astroanu
1
@astroanu: Sie veröffentlichen es im Klartext, ja, aber wenn es vom Server (und jeder weiteren GET-Anfrage danach) an Sie zurückkommt, wird nur die gesalzene und gehashte Version des Passworts zurückgegeben.
MidnightLightning
Was ist mit Cloudant?
Sebastián Rojas
20
Die CouchDB-Dokumentation enthält einen kurzen Artikel über die Sicherheitsfunktionen von CouchDB und die Konfiguration eines "Readers", der einem Benutzer in einer relationalen Datenbank ähnelt.
Das ist richtig. Die kurze Antwort auf IDanils Frage lautet: "Erstellen Sie ein Dokument in der _usersDatenbank." Ihr Link erklärt jedoch alle Details und Auswirkungen.
JasonSmith
-13
Ich denke, Sie müssen ein Web-Framework vorlegen, um dies so zu tun, wie es viele Websites tun. Couchdb-Administratorrollen funktionieren nicht Datensatz für Datensatz. Wenn Sie also einen Leser erstellen, der die Profile oder die Kontotabelle lesen kann, kann er Datensatz lesen.
Dieser Beitrag erfordert eine Erklärung, warum so viele Leute ihn abgelehnt haben. Mit CouchDB können Sie Benutzer erstellen, indem Sie ein JSON-Objekt an einen der REST-API-Endpunkte senden. Die Struktur dieses Dokuments wurde von Gjorgji in seinem Beitrag dargelegt.
couchdb_peruser
Benutzernamen gehasht werden müssen, um Datenbanknamen zu erstellen. Es gibt einige Einschränkungen, die Sie im Designdokument für die Benutzerdatenbank finden können : - Benutzernamen dürfen nicht mit einem Unterstrich beginnen_
- Benutzernamen dürfen keinen Doppelpunkt enthalten:
_ (Es ist 2019 immer noch schwierig, online eine Antwort darauf zu finden)Antworten:
Zuerst legen Sie den Benutzer in die
_users
Datenbank. Die ID des Dokuments mussorg.couchdb.user:username
zVerwenden Sie mit CouchDB 1.2.0 oder höher Folgendes:
CouchDB hasht & Salt das Passwort für Sie auf der Serverseite und speichert die Werte in den Feldern
password_sha
undsalt
(siehe unten).Bei CouchDB <1.2.0 muss das Benutzerdokument folgendermaßen aussehen:
Beachten Sie, dass CouchDB 1.3.0 und höher PBKDF2 anstelle von aha & salt zum Hashing des Kennworts verwendet.
Anschließend können Sie eine Authentifizierung pro Datenbank erstellen, indem Sie ein Dokument mit der ID _security in einer bestimmten Datenbank erstellen, die nicht versioniert ist, z
Dies bedeutet, dass sich
_users
neben dem Administrator dbadmin und dbreader 2 Benutzer befinden . Dies sollte der Fall sein, wenn Sie zu faul sind, um das bereits vorgeschlagene Dokument zu lesen.quelle
Die CouchDB-Dokumentation enthält einen kurzen Artikel über die Sicherheitsfunktionen von CouchDB und die Konfiguration eines "Readers", der einem Benutzer in einer relationalen Datenbank ähnelt.
quelle
_users
Datenbank." Ihr Link erklärt jedoch alle Details und Auswirkungen.Ich denke, Sie müssen ein Web-Framework vorlegen, um dies so zu tun, wie es viele Websites tun. Couchdb-Administratorrollen funktionieren nicht Datensatz für Datensatz. Wenn Sie also einen Leser erstellen, der die Profile oder die Kontotabelle lesen kann, kann er Datensatz lesen.
quelle