剛裝好的mongo,準備登陸進去測一把的,結果就給我報這個錯,鄙人是新手,還不太清楚這個,現學一下~
auth=true
這裡的意思是開啟身份驗證,有使用者,密碼,角色,許可權之類的東西,如果把auth設為false的話,那麼mongo就相當於裸奔了,誰都可以連進來。如果伺服器安全性挺高的,裸奔倒也不是問題。但是現在的版本還是推薦把這個auth給開啟。
身份認證:驗證使用者的身份,你是誰
授權:判定使用者在通過了身份驗證的資料庫上可以進行那些操作,比如讀,寫,唯讀,只寫等
auth=true會禁止對資料庫的匿名訪問。
mongo中使用者的資訊在system.users集合中,改集合存在於管理資料庫中(我這裡的是admin),它儲存了使用者id,密碼和建立該集合所面向的資料庫以及對使用者授權的許可權。
在列印的使用者資訊的第一行中,"user" : "tuhooo", "db" : "admin",表示了tuhooo這個使用者及其關聯的資料庫"admin",它們兩個唯一標識了mongo中的乙個使用者。如果兩個使用者具有相同名稱,但是關聯到了不同的資料庫,那麼它們被認為是兩個不同的使用者。
在使用者資訊的倒數第二行:"roles" : [ , ]表明了tuhooo在這個使用者可以有不同資料庫的不同許可權(這裡只有乙個庫,因為我還沒來得及建測試庫)。如果兩個使用者具有相同的名稱但是關聯到了不同的資料庫,那麼它們被認為是兩個不同的使用者。
小結:使用者名稱和關聯的資料庫唯一標識了mongo中的乙個使用者。
乙個使用者可以在不同資料庫中具有不同授權級別的多個角色。
mongo中可用的角色有以下:
提供了對指定資料庫所有集合的唯讀訪問。
提供了指定資料庫中對任意集合的讀寫訪問。
使用者可以在指定資料庫中執行管理操作,使用ensureindex、dropindexes、reindex、indexstats管理索引、重新命名集合、建立集合等。
使用者可以對指定資料庫的system.users集合進行readwrite操作。它還啟用了對已有使用者的許可權進行修改或者建立使用者的功能,實際上指定了資料庫的超級使用者角色。
使得使用者可以對修改或顯示與整個系統有關的資訊的管理操作授予訪問許可權。clusteradmin只適用於管理資料庫。
使得使用者可以讀取mongo環境中的任意資料庫。
類似於readwrite,只不過它適用於所有資料庫。
類似於useradmin,只不過它適用於所有資料庫。
類似於dbadmin,只不過它適用於所有資料庫。
從2.6版本開始,乙個使用者管理員還可以通過提供集合級別以及命令級別的訪問許可權來建立遵循最小許可權策略的使用者定義的角色。使用者定義的角色僅作用於建立它的資料庫中,並且被資料庫和角色名稱的組合唯一標識。所有使用者定義的角色都被儲存在system.roles集合中。
上圖是我登陸的過程,剛用mongo連線進去了,然後直接:
db.auth("tuhooo", "123456")
居然給我報錯,只有切換到admin庫,然後在這個庫下面才能做登陸。
切記切換到admin進行登陸操作。
//以上就是這樣了~客戶端連線
$ mongo
//切換到admin庫
>use admin
//建立使用者
>db.createuser(]}
)//登陸, 只有登陸後才能進行其他操作
> db.auth("
myuseradmin
", "
abc123")
//授予角色, 可以根據前面的介紹以及個人需要來授予
> db.grantrolestouser("
myuseradmin
", [ ])
//檢視狀態
> db.stats()
c api身份驗證和授權
1.全域性 config.filters.add new authorizeattribute 2.控制器級別 authorize public class hellocontroller apicontroller 3.方法級別 public class hellocontroller apico...
forms 身份驗證(授權)詳解
首先在 web.config 中設定 設定 mode forms protection all 加密和保護 在這個裡面設定那些使用者被容許和拒絕 拒絕 代表匿名 代表所有人 容許在和資料庫比較時,如果通過則寫入資料庫,方法如下,2種都可以 1 把資訊寫入cookies false 代表cookies...
Forms 身份驗證
配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...