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文檔).