日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB 3.0 用户验证问题

發布時間:2024/5/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 用户验证问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。