連接配接資料庫
第一種:/opt/local/mogodb/bin/mongo --host 10.130.161.15:8000
第二種:mongo IP:端口/資料庫名 -u 使用者名 -p 密碼
退出:exit
1.建立使用者
db.createUser( { user: "userName",
pwd: "password",
customData: { employeeId: 12345 },
roles: [ { role: "clusterAdmin", db: "dbName" },
{ role: "readAnyDatabase", db: "dbName" },
"readWrite"] },
{ w: "majority" , wtimeout: 5000 } )
注:
(1)customData: 用于描述賬戶資訊
(2)roles:
資料庫使用者角色
Read:允許使用者讀取指定資料庫
readWrite:允許使用者讀寫指定資料庫
備份恢複角色
backup,retore:在進行備份、恢複時可以單獨指定的角色,在db.createUser()方法中roles裡面的db必須寫成是admin庫,要不然會 報錯
資料庫管理角色
dbAdmin:允許使用者在指定資料庫中執行管理函數,如索引建立、删除,檢視統計或通路system.profile
userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、删除和管理使用者
叢集管理角色
clusterAdmin:隻在admin資料庫中可用,賦予使用者所有分片和複制集相關函數的管理權限。
所有資料庫角色
readAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的讀權限
readWriteAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的讀寫權限
userAdminAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的userAdmin權限,
dbAdminAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin權限。
超級使用者角色
root:隻在admin資料庫中可用。超級賬号,超級權限
注:在有root賬号的前提下,可先在admin下驗證權限,然後再到相應資料庫去為其它賬号添權重限,此時可以不用在對應資料再庫執db.auth()
2.删除使用者
db.dropUser("userName")
3.修改使用者權限
db.grantRolesToUser(
"accountUser01",
[ "readWrite" , { role: "read", db: "stock" } ],
{ w: "majority" , wtimeout: 4000 }
)
4.修改使用者密碼
db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")
5.随機取N條資料
db.xxx.aggregate([$sample:{size:3}]);
6.資料庫相關
show dbs:顯示資料庫清單
show collections:顯示目前資料庫中的集合(類似關系資料庫中的表)
show users:顯示使用者
use <db name>:切換目前資料庫,這和MS-SQL裡面的意思一樣
db.help():顯示資料庫操作指令,裡面有很多的指令
db.foo.help():顯示集合操作指令,同樣有很多的指令,foo指的是目前資料庫下,一個叫foo的集合,并非真正意義上的指令
db.foo.find():對于目前資料庫中的foo集合進行資料查找(由于沒有條件,會列出所有資料)
db.foo.find( { a : 1 } ):對于目前資料庫中的foo集合進行查找,條件是資料中有一個屬性叫a,且a的值為1
7.多個資料庫使用同一個使用者
原則上mongodb一個資料庫隻能使用一個使用者進行連接配接,但如果要多個資料庫共用使用者,則隻能在兩個資料庫分别添加讀寫權限
db.createUser( { user: "test",
pwd: "test",
roles: [ {
"role" : "readWrite",
"db" : "test"
},
{
"role" : "readWrite",
"db" : "abc"
}] })