欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何对couchdb进行权限控制 博客分类: couchdb CouchDBSecurity

程序员文章站 2024-03-23 17:29:22
...

 

         couchdb默认是把权限关闭的,打开方法为进入Futon->Configuration->couch_httpd_auth->require_valid_user改为true.

或者直接修改其local.ini文件,路径如:

 

/opt/couchdb-1.0.1/etc/couchdb/local.ini
 

 

 

一、couchdb中的授权用户分为三种

1、database readers:针对每个数据库,此类用户可以修改普通文檔,不能修改_design文档。

2、database admins:针对每个数据库,可以修改些数据库的admins和readers,可以修改普通文檔和_design文档.设置数据库的游览限制,执行临时view.但不能创建删除数据库。

3、server admins:针对每个couchdb服务,拥有所有权限。

二、授权用户的创建

对于server admins,可以直接点Futon右下角的Setup more admins创建用户,也可修改local.ini。

database readers和database admins的用户就需要在_users里插入文档实现,格式如下:

 

{
  "_id"          : "org.couchdb.user:joe",
  "type"         : "user",
  "name"         : "joe",
  "roles"        : ["erlanger"],
  "password_sha" : "fe95df1ca59a9b567bdca5cbaf8412abd6e06121",
  "salt"         : "4e170ffeb6f34daecfd814dfb4001a73"
}
 

对于_id,必须以org.couchdb.user:为前綴,然后加上name的值,type也只能为user,roles为一字符串数组.password_sha是密碼加上salt的SHA-1 hash值.

三、权限应用于数据库

随便进入一个数据库,在上方点Security,設定格式如:

 

{
  "admins" : {
     "names" : ["joe", "phil"],
     "roles" : ["boss"]
   },
   "readers" : {
     "names" : ["dave"],
     "roles" : ["producer", "consumer"]
   }
}
 

此文件位于/db_name/security,如若admins和readers都为空,則意味者此数据庫只能由server admins全部控制,任何用户可以修改此数据库的文档(除_design文档).

 

相关标签: CouchDB Security