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