創(chuàng)建數(shù)據(jù)庫(kù)用戶
> use admin
switched to db admin
> db.createUser(
... {
... user: "dba",
... pwd: "dba",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "dba",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
- user:用戶名
- pwd:密碼
- db : 數(shù)據(jù)庫(kù)名字
- roles:指定用戶的角色,可以用一個(gè)空數(shù)組給新用戶設(shè)定空角色晕城;在roles字段,可以指定內(nèi)置角色和用戶定義的角色泞坦。
role里的角色可以選:
Built-In Roles(內(nèi)置角色):
1. 數(shù)據(jù)庫(kù)用戶角色:read、readWrite;
2. 數(shù)據(jù)庫(kù)管理角色:dbAdmin砖顷、dbOwner贰锁、userAdmin赃梧;
3. 集群管理角色:clusterAdmin、clusterManager豌熄、clusterMonitor授嘀、hostManager;
4. 備份恢復(fù)角色:backup房轿、restore粤攒;
5. 所有數(shù)據(jù)庫(kù)角色:readAnyDatabase、readWriteAnyDatabase囱持、userAdminAnyDatabase夯接、dbAdminAnyDatabase
6. 超級(jí)用戶角色:root
// 這里還有幾個(gè)角色間接或直接提供了系統(tǒng)超級(jí)用戶的訪問(wèn)(dbOwner 、userAdmin纷妆、userAdminAnyDatabase)
7. 內(nèi)部角色:__system
具體角色:
read:允許用戶讀取指定數(shù)據(jù)庫(kù)
readWrite:允許用戶讀寫(xiě)指定數(shù)據(jù)庫(kù)
dbAdmin:允許用戶在指定數(shù)據(jù)庫(kù)中執(zhí)行管理函數(shù)盔几,如索引創(chuàng)建、刪除掩幢,查看統(tǒng)計(jì)或訪問(wèn)system.profile
userAdmin:允許用戶向system.users集合寫(xiě)入逊拍,可以找指定數(shù)據(jù)庫(kù)里創(chuàng)建、刪除和管理用戶
clusterAdmin:只在admin數(shù)據(jù)庫(kù)中可用际邻,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限芯丧。
readAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的讀權(quán)限
readWriteAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用世曾,賦予用戶所有數(shù)據(jù)庫(kù)的讀寫(xiě)權(quán)限
userAdminAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用缨恒,賦予用戶所有數(shù)據(jù)庫(kù)的userAdmin權(quán)限
dbAdminAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的dbAdmin權(quán)限轮听。
root:只在admin數(shù)據(jù)庫(kù)中可用骗露。超級(jí)賬號(hào),超級(jí)權(quán)限
開(kāi)啟用戶權(quán)限
新建mongodb.conf文件血巍,并加入“auth=true”
從配置文件啟動(dòng)mongodb服務(wù)
./bin/mongod -f mongodb.conf
用戶驗(yàn)證
[caideyang@localhost mongodb3.2.10]$ ./bin/mongo
MongoDB shell version: 3.2.10
connecting to: test
> use caideyang
switched to db caideyang
> db.auth('cdy','passwd')
1
>
mongodb.conf配置文件
#數(shù)據(jù)庫(kù)數(shù)據(jù)存放目錄
dbpath=/usr/local/mongodb304/data
#數(shù)據(jù)庫(kù)日志存放目錄
logpath=/usr/local/mongodb304/logs/mongodb.log
#以追加的方式記錄日志
logappend = true
#端口號(hào) 默認(rèn)為27017
port=27017
#以后臺(tái)方式運(yùn)行進(jìn)程
fork=true
#開(kāi)啟用戶認(rèn)證
auth=true
#關(guān)閉http接口萧锉,默認(rèn)關(guān)閉http端口訪問(wèn)
nohttpinterface=true
#mongodb所綁定的ip地址
bind_ip = 127.0.0.1,192.168.1.140
#啟用日志文件,默認(rèn)啟用
journal=true
#這個(gè)選項(xiàng)可以過(guò)濾掉一些無(wú)用的日志信息述寡,若需要調(diào)試使用請(qǐng)?jiān)O(shè)置為false
quiet=true
其他配置參數(shù)含義
--quiet # 安靜輸出
--port arg # 指定服務(wù)端口號(hào)柿隙,默認(rèn)端口27017
--bind_ip arg # 綁定服務(wù)IP,若綁定127.0.0.1鲫凶,則只能本機(jī)訪問(wèn)优俘,不指定默認(rèn)本地所有IP
--logpath arg # 指定MongoDB日志文件,注意是指定文件不是目錄
--logappend # 使用追加的方式寫(xiě)日志
--pidfilepath arg # PID File 的完整路徑掀序,如果沒(méi)有設(shè)置,則沒(méi)有PID文件
--keyFile arg # 集群的私鑰的完整路徑惭婿,只對(duì)于Replica Set 架構(gòu)有效
--unixSocketPrefix arg # UNIX域套接字替代目錄,(默認(rèn)為 /tmp)
--fork # 以守護(hù)進(jìn)程的方式運(yùn)行MongoDB不恭,創(chuàng)建服務(wù)器進(jìn)程
--auth # 啟用驗(yàn)證
--cpu # 定期顯示CPU的CPU利用率和iowait
--dbpath arg # 指定數(shù)據(jù)庫(kù)路徑
--diaglog arg # diaglog選項(xiàng) 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb # 設(shè)置每個(gè)數(shù)據(jù)庫(kù)將被保存在一個(gè)單獨(dú)的目錄
--journal # 啟用日志選項(xiàng)叶雹,MongoDB的數(shù)據(jù)操作將會(huì)寫(xiě)入到j(luò)ournal文件夾的文件里
--journalOptions arg # 啟用日志診斷選項(xiàng)
--ipv6 # 啟用IPv6選項(xiàng)
--jsonp # 允許JSONP形式通過(guò)HTTP訪問(wèn)(有安全影響)
--maxConns arg # 最大同時(shí)連接數(shù) 默認(rèn)2000
--noauth # 不啟用驗(yàn)證
--nohttpinterface # 關(guān)閉http接口,默認(rèn)關(guān)閉27018端口訪問(wèn)
--noprealloc # 禁用數(shù)據(jù)文件預(yù)分配(往往影響性能)
--noscripting # 禁用腳本引擎
--notablescan # 不允許表掃描
--nounixsocket # 禁用Unix套接字監(jiān)聽(tīng)
--nssize arg (=16) # 設(shè)置信數(shù)據(jù)庫(kù).ns文件大小(MB)
--objcheck # 在收到客戶數(shù)據(jù),檢查的有效性换吧,
--profile arg # 檔案參數(shù) 0=off 1=slow, 2=all
--quota # 限制每個(gè)數(shù)據(jù)庫(kù)的文件數(shù)折晦,設(shè)置默認(rèn)為8
--quotaFiles arg # number of files allower per db, requires --quota
--rest # 開(kāi)啟簡(jiǎn)單的rest API
--repair # 修復(fù)所有數(shù)據(jù)庫(kù)run repair on all dbs
--repairpath arg # 修復(fù)庫(kù)生成的文件的目錄,默認(rèn)為目錄名稱dbpath
--slowms arg (=100) # value of slow for profile and console log
--smallfiles # 使用較小的默認(rèn)文件
--syncdelay arg (=60) # 數(shù)據(jù)寫(xiě)入磁盤(pán)的時(shí)間秒數(shù)(0=never,不推薦)
--sysinfo # 打印一些診斷系統(tǒng)信息
--upgrade # 如果需要升級(jí)數(shù)據(jù)庫(kù) * Replicaton 參數(shù)
--------------------------------------------------------------------------------
--fastsync # 從一個(gè)dbpath里啟用從庫(kù)復(fù)制服務(wù),該dbpath的數(shù)據(jù)庫(kù)是主庫(kù)的快照沾瓦,可用于快速啟用同步
--autoresync # 如果從庫(kù)與主庫(kù)同步數(shù)據(jù)差得多满着,自動(dòng)重新同步,
--oplogSize arg # 設(shè)置oplog的大小(MB) * 主/從參數(shù)
--------------------------------------------------------------------------------
--master # 主庫(kù)模式
--slave # 從庫(kù)模式
--source arg # 從庫(kù) 端口號(hào)
--only arg # 指定單一的數(shù)據(jù)庫(kù)復(fù)制
--slavedelay arg # 設(shè)置從庫(kù)同步主庫(kù)的延遲時(shí)間 * Replica set(副本集)選項(xiàng):
--------------------------------------------------------------------------------
--replSet arg # 設(shè)置副本集名稱 * Sharding(分片)選項(xiàng)
--------------------------------------------------------------------------------
--configsvr # 聲明這是一個(gè)集群的config服務(wù),默認(rèn)端口27019贯莺,默認(rèn)目錄/data/configdb
--shardsvr # 聲明這是一個(gè)集群的分片,默認(rèn)端口27018
--noMoveParanoia # 關(guān)閉偏執(zhí)為moveChunk數(shù)據(jù)保存
備份還原數(shù)據(jù)庫(kù)
備份
[caideyang@localhost mongodb3.2.10]$ ./bin/mongodump --port=27017 -ucdy -ppasswd --db=caideyang -o /home/caideyang/backup/
2016-10-30T15:58:58.082+0800 writing caideyang.score to
2016-10-30T15:58:58.083+0800 writing caideyang.user to
2016-10-30T15:58:58.084+0800 done dumping caideyang.score (4 documents)
2016-10-30T15:58:58.085+0800 done dumping caideyang.user (2 documents)
[caideyang@localhost ~]$ tree backup/
backup/
└── caideyang
├── score.bson
├── score.metadata.json
├── user.bson
└── user.metadata.json
1 directory, 4 files
還原
[caideyang@localhost mongodb3.2.10]$ ./bin/mongorestore --port=27017 -ucdy -ppasswd --db=caideyang ../backup/caideyang/
2016-10-30T16:04:43.914+0800 building a list of collections to restore from ../backup/caideyang dir
2016-10-30T16:04:43.918+0800 reading metadata for caideyang.score from ../backup/caideyang/score.metadata.json
2016-10-30T16:04:43.918+0800 reading metadata for caideyang.user from ../backup/caideyang/user.metadata.json
2016-10-30T16:04:43.918+0800 restoring caideyang.score from ../backup/caideyang/score.bson
2016-10-30T16:04:43.918+0800 restoring caideyang.user from ../backup/caideyang/user.bson
2016-10-30T16:04:43.930+0800 error: multiple errors in bulk operation:
- E11000 duplicate key error collection: caideyang.user index: _id_ dup key: { : ObjectId('5815a5fa5fee222be4c321c9') }
- E11000 duplicate key error collection: caideyang.user index: _id_ dup key: { : ObjectId('5815a63a5fee222be4c321ca') }
2016-10-30T16:04:43.930+0800 restoring indexes for collection caideyang.user from metadata
2016-10-30T16:04:43.936+0800 finished restoring caideyang.user (2 documents)
2016-10-30T16:04:43.988+0800 restoring indexes for collection caideyang.score from metadata
2016-10-30T16:04:43.989+0800 finished restoring caideyang.score (4 documents)
2016-10-30T16:04:43.989+0800 done
[caideyang@localhost mongodb3.2.10]$