Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7874729
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T02:51:38+00:00 2026-06-03T02:51:38+00:00

I did read http://guide.couchdb.org/draft/security.html and and the previous question CouchDB Authorization on a Per-Database

  • 0

I did read http://guide.couchdb.org/draft/security.html and

and the previous question
CouchDB Authorization on a Per-Database Basis
and
http://wiki.apache.org/couchdb/Security_Features_Overview

I am currently using Apache CouchDB 1.2.0 and via futon the adding an admin result in
adding a user at _users for example

_id
org.couchdb.user:stackoverflow
 _rev 
1-b9f223532b662d4ac52d14082d81e6a5

name
stackoverflow

password
null

roles
[ ]

type
user

So the first question is why the admin is added as type user and not admin is puzzling. This users are admin as they can do anything in any database and the role is empty BUT I did protect the _users document with

["admin"]

roles as the only members and only admins can access this (even if their role in the _users document is empty).

This protection does not allow new “normal” users to be created so the futon “signup” command will return Signup error: You are not authorized to access this db.

I think this setup is the only logical one. Why would you want anyone to be able to create a user on your database ??

Even if you specify read access in a db to be only for one admin every admin can access it

(

 " admins" : {
   "names" : ["guru"],
   "roles" : ["boss"]
  },
  "readers" : {
    "names" : ["guru"],
   "roles" : ["boss"]
  }
}

the above case has no impact on the newly created stackoverflow admin as per above example.

So my assumption is that admins created via futon can do everything and anything regardless. The only confusing logical part is the _users documents where they have no special type (they are users) nor a special role.

So back to the concrete question:
– when adding an admin via futon why is it not marked as admin inside the _users document and how does CouchDB from that document determine that it is a wide system admin?
– if you want to create a normal user WITHOUT allowing them to signup (via futon or direct HTTP Request) you have to protect the _users document. Yet how would you go to create yourself a user to read/write on his own database ?
– As the user (per CouchDB Docs) will have the read/write rights on a DB but not the possibility to create design documents how can he really use it efficiently as views will be needed for anyone developing using the DB?

It should be possible to have a normal, simply multi hosting without jeopardizing security as there is a shared CouchDB offering at http://www.iriscouch.com/ so I just don’t understand how logically you would structure a simple service where a user has his own database and can do anything but just on this database. As the admin role is anyway “user” how would you distinguish them from a non admin in the _users table ?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T02:51:39+00:00Added an answer on June 3, 2026 at 2:51 am

    Why is the admin added as a normal user and not an admin?

    CouchDB is similar to Windows’s Active Directory, or Unix NIS and LDAP: most users have “normal” accounts, however the admin account (e.g. Windows “Administrator”, or Unix “root”) does not use the normal accounting system, but rather a much simpler system (the local.ini config file).

    If the account and authentication system ever has a problem, you can still log in as the admin and fix it.

    Do I need to add the “_admin” role to a user?

    No, the admin role (the role "_admin") does not come from the user’s document, but only from the configuration, in the “admins” section.

    How come all admins can read the database?

    By creating an admin in the global configuration (either editing the local.ini file, or using Futon’s “Configuration” tab, or clicking the “Fix this” link in Admin Party), you created a system admin. System admins have access to all data, always (similar to Windows Administrator and Unix root).

    CouchDB supports database admins which are normal users. Those users have admin access only to a database, not to anything else, such as other databases, or the server config. Database admins are set in the “Security” section, by adding a user’s name or role to the “Admins” lists.

    The concrete question: – when adding an admin via futon why is it not marked as admin inside the _users document and how does CouchDB from that document determine that it is a wide system admin?

    When adding an admin via Futon, two things happen

    1. A normal user is created (with no valid password in fact)
    2. The same user name is added to the system configuration “admins” section. GET /_config/admins/the_username to see it. (That’s what Futon’s configuration tab does.)

    In other words, CouchDB does not know it is a wide system admin from the document but rather from the config. If you delete that config entry, the user is “demoted” back to a normal user.

    Side note about Iris Couch

    It can be a little confusing at first, but the CouchDB user and security system is pretty simple and powerful once you learn it. But each Iris Couch users have entire CouchDB servers. If you sign up, you have an account at Iris Couch, but you have an entire CouchDB server to use. Inside that server, you can create multiple users for your own applications.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

So, here is the discussion I have just read: http://www.mail-archive.com/delphi@delphi.org.nz/msg02315.html BeginUpdate and EndUpdate is
I have read http://developer.android.com/guide/practices/screens_support.html and http://developer.android.com/reference/android/util/DisplayMetrics.html and I somehow left with a gap here.
I wanted to try the example here http://www.codeconscious.com/rebol/rebol-net.html#HTTP print read/custom http://babelfish.altavista.com/translate.dyn reduce ['POST {text=REBOL+Rules&lp=en_fr}]
How to read binary streams from a HTTP streamer server in python. I did
I read the mapreduce at http://en.wikipedia.org/wiki/MapReduce ,understood the example of how to get the
I just read the Trail on RMI from sun at http://java.sun.com/docs/books/tutorial/rmi/implementing.html When I run
I have read http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Collections/Articles/Arrays.html%23//apple_ref/doc/uid/20000132-SW5 But I did not find a solution to my problem.
Yes, I did read the 'Related Questions' in the box above after I typed
I am not a Groovy expert, but I did read the book Groovy in
Before someone said that I did not read I may say that I read

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.