MongoDB 3.0 用户验证问题
生活随笔
收集整理的這篇文章主要介紹了
MongoDB 3.0 用户验证问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
- 添加用戶驗證
- 修改驗證方式
- 創建系統管理員
- 創建數據庫管理員
- 測試
- mongodbconf
- 啟動
- 測試
- 實戰流程
- Spring配置
- 添加用戶驗證
由于16年底公司數據庫被黑之后,研究了下mongo鑒權,給數據庫加上了的確安全了不少,至少不是裸奔了,今天給一新數據庫加鑒權,居然忘記了,憑印象筆記的點點滴滴才搞好,索性整理一篇文章,怕自己再忘接了可咋辦.
1. 添加用戶驗證
Mongodb 2.6 的默認用戶驗證方式是:MONGODB-CR Mongodb 3.0 的默認用戶驗證方式是:SCRAM-SHA-1由于項目中的MongoDB版本是3.0的,而SCRAM-SHA-1驗證方式在spring和java中還有問題,所以項目中3.0的數據庫依舊使用之前的驗證方式。所以我們要把3.0的驗證方式改成MONGODB-CR.
注意:添加鑒權的時候,不要開啟auth,就是配置文件中不要把auth設置為true.否則你是沒有權限添加權限的…
修改驗證方式
use admin//切換到admin的DB db.system.users.remove({})//刪除用戶 db.system.version.remove({})//刪除版本信息 db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })//直接插入一條,暴力解決創建系統DB管理員
db.createUser({"user":"admin","pwd":"admin","roles":["root"]})注意:admin是system權限,會擁有其他數據庫的權限,但是在spring中,用admin登錄其他數據庫是沒有權限的.
創建數據庫管理員
use test//切換到測試數據庫 db.createUser({user:"test_admin",pwd:"123456",roles:["readWrite","dbAdmin"]})測試
以上操作沒有報錯之后,在配置文件中把auth設置為true.
mongodb.conf:
dbpath=C:\MongoDB\data #數據庫路徑 logpath=C:\MongoDB\logs\mongodb.log #日志輸出文件路徑 logappend=true #錯誤日志采用追加模式,配置這個選項后mongodb的日志會追加到現有的日志文件,而不是從新創建一個新文件 journal=true #啟用日志文件,默認啟用 quiet=false #這個選項可以過濾掉一些無用的日志信息,若需要調試使用請設置為false port=27017 #端口號 默認為27017 maxConns=20000 auth=true #開啟驗證 rest = false #禁止rest接口 nohttpinterface = true #禁止HTTP狀態接口 #bind_ip=0.0.0.0啟動
mongod --config=C:\MongoDB\conf\mongodb.conf注意:這里默認為本機的27017端口
測試
use test db.user.find()//如果報錯拿不到數據,顯示not authorized for query on...,說明沒權限 db.auth("test_admin","123456")//返回1,代表成功 db.user.find() ...//此處為大堆大堆的數據了實戰流程
這里是整個流程的,數據庫端口用的是26016
2. Spring配置
本例所用jar包為: spring 4.2.1 mongodb-driver:3.0.4.jar spring-data-mongodb:1.8.0.jar其實配置也很簡單,就是修改下mongodb的xml文件即可(spring-mongodb.xml).
<!-- 修改前,無密碼訪問--> <mongo:mongo-client host="192.168.0.114" port="27017" id="mongo"> ... </mongo:mongo-client> <!-- 修改后,加入credentials="username:password@database"--> <!--credentials="用戶名:密碼@擁有權限的數據庫"--> <mongo:mongo-client host="192.168.0.114" port="27017" credentials="test_admin:123456@test" id="mongo"> ... </mongo:mongo-client>總結
以上是生活随笔為你收集整理的MongoDB 3.0 用户验证问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上市公司对外担保数据大全:对外担保/违规
- 下一篇: 专升本C语言——资料复习大全(需要完整版