一允坚、給admin庫添加root權(quán)限
如果這樣設(shè)置呵晨,登陸成功以后可以對(duì)所有庫進(jìn)行操作
## 1吐限、 首先免密方式開啟數(shù)據(jù)庫
$ ./mongod --dbpath /data/db
## 2忽刽、使用admin數(shù)據(jù)庫
> use admin
switch admin
##3天揖、為admin庫添加 root賬戶
>db.createUser({
'user' : 'adminName',
'pwd' : 'yourPassword',
'roles':[
{role:'root',db:'admin'}
#此為admin這個(gè)表的根用戶,登錄以后方可對(duì)所有庫進(jìn)行操作
]
})
##4跪帝、然后退出當(dāng)前數(shù)據(jù)庫今膊,殺掉進(jìn)程,并以 --auth 重啟
×××××××××××××××××××××××××××××××××
# 列出mongod 進(jìn)程
$ ps -e | grep mongod
# 殺掉進(jìn)程
$ sudo kill 進(jìn)程ID
# 或者直接:
$ ./mongod --shutdown --dbpath /data/db
××××××××××××××××××××××××××××××××
## 5伞剑、 有密開啟數(shù)據(jù)庫
$ ./mongod --dbpath /data/db --auth --port 27001
## 6斑唬、此時(shí)沒有使用賬號(hào)密碼也能登錄,但是無法進(jìn)行相關(guān)操作
>show dbs
##2017-01-10T10:55:46.227+0800 E QUERY [main] Error: listCollections failed: {
## "ok" : 0,
## "errmsg" : "not authorized on admin to execute command { ##listCollections: 1.0, filter: {} }",
## "code" : 13,
## "codeName" : "Unauthorized"
##} :
## 7黎泣、登陸admin庫的root賬戶:
> use admin
-- switch admin
> db.auth('adminName','yourPassword')
-- 1 #此時(shí)已成功登錄admin 的root賬戶恕刘,可以進(jìn)行所有庫的操作
> show dbs
admin
local
>show collections
system.users
system.version
>db.system.users.find().pretty()
## 可顯示 查詢到的數(shù)據(jù)
{
"_id" : "admin.adminName",
"user" : "adminName",
"db" : "admin",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : "CG52h/827OSDhRTQ2MkMwQ==",
"storedKey" : "/RrlhidF03ei2r2kyS3QCppe67c=",
"serverKey" : "Psnhd9GatLu4rc6Q7Kp+/Z8n+og="
}
},
//下面這個(gè)就是你剛添加的
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
二、給 某一個(gè)庫添加 dbOwner 權(quán)限
1抒倚、同樣免密開啟數(shù)據(jù)庫服務(wù)
2褐着、鏈接到某一個(gè)庫
> use cc_cs
switched to db cczyy_cs
3、為該庫設(shè)置賬戶
> db.createUser({
'user':'zhangsan', //鏈接數(shù)據(jù)庫的賬戶名
'pwd':'lisi', //密碼
'roles':[
{
role:'dbOwner',
db:'cc_cs'
}
]
})
Successfully added user: {
"user" : "zhangsan",
"roles" : [
{
"role" : "dbOwner",
"db" : "cc_cs"
}
]
}
4托呕、連接到 admin庫含蓉,查看你剛才創(chuàng)建的cc_cs庫的賬戶
> use admin
switched to db admin
> db.system.users.find().pretty()
{
// _id字段:cc_cs 是當(dāng)前用戶所屬的數(shù)據(jù)庫的名稱洋访;
// zhangsan 是你設(shè)置的賬戶名
"_id" : "cc_cs.zhangsan",
"user" : "zhangsan",
"db" : "cc_cs",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : "dGurhbdFOAtEvjvf+IrWOg==",
"storedKey" : "4tU/9+R6sQSL+4QvhmykRAUwioQ=",
"serverKey" : "MmHTwuP2lnkO8LpFFEArrFE7VFY="
}
},
"roles" : [
{
"role" : "dbOwner",
"db" : "cc_cs"
}
]
}
5、關(guān)閉mongo并有密啟動(dòng)
6谴餐、鏈接數(shù)據(jù)庫以后
$ ./mongo
connecting to: test
> use cc_cs
switch cc_cs
> db.auth('zhangsan','lisi')
1 //驗(yàn)證成功
>show collections
user
students