mongodb新增使用者驗證

2021-10-09 03:39:02 字數 3182 閱讀 8296

mongodb在預設的情況下是無認證啟動的,也就是不需要密碼就可以訪問連線,如果公網開放的話,這是很危險的行為,資料可能會被惡意篡改和刪除,是乙個很大的安全問題。

所以生產環境下,勢必要給mongodb加上使用者驗證並且關閉埠公網訪問。

那麼怎麼給資料新增驗證呢?

非auth的情況下先關閉已啟動的mongodb

# 切換到admin資料庫

use admin

# 關閉

db.shutdownserver(

)# 如果關不掉提示認證資訊,說明現在已經是認證方式啟動的mongo,先輸入密碼

db.auth(

"username", "password"

)# 如果忘記密碼了,請檢視

# 在沒有auth的情況下

> show dbs

admin 0.000gb

yourdb 0.044gb

coex2020 0.000gb

config 0.000gb

flask_profiler 0.000gb

local 0.000gb

# 首先要建立乙個admin的root使用者

> use admin

# 檢視是否已經有使用者了

# >db.system.users.find()

# 建立乙個admin使用者

> db.createuser(]}

)# 賦予admin使用者root許可權

> db.grantrolestouser(

"admin", )

# 關閉資料庫

> db.shutdownserver(

)

開啟auth啟動資料庫(配置檔案啟動,配置檔案貼在最後)
mongod -f /etc/mongodb.conf
# 切換到yourdb

> use yourdb

# 建立乙個yourdb的使用者, 賦予其讀寫許可權

> db.createuser(]}

)# 關於使用者可以賦予的許可權,請看

read:允許使用者讀取指定資料庫

readwrite:允許使用者讀寫指定資料庫

dbadmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile

useradmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者

readanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權

readwriteanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權

useradminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的useradmin許可權

dbadminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbadmin許可權。

root:只在admin資料庫中可用。超級賬號,超級許可權

> use yourdb

> db.auth(

"username", "password")1

# 可以愉快的查詢資料了,如果有auth問題,就將賦予對應許可權就可以了

>db.collection.find(

)

新增認證後的訪問連線
mongodb://username:password@dbipaddress:27017/yourdb

# 關於鏈結的格式可以訪問

from pymongo import mongoclient

host =

127.0

.0.1

username =

"username"

password =

"password"

# 連線到資料庫

conn = mongoclient(host=host,

port=

27017

, password=password,

username=username,

authsource=

"yourdb"

).yourdb

# 切換到資料庫下的表

collection = conn.your_collection

# 然後就可以愉快的操作mongo了

mongo 配置檔案(yaml格式)

關於yaml,這個檔案的格式很嚴格,不支援tab。

按照層級,二層和一層每行要相隔4個空格,三層和二層要相隔4個空格,頂層不需要空格縮排,依次類推。key後面要有乙個空格。

# mongodb.conf

# reminds: using yaml style

# where to store the data.

storage

:dbpath

: /home/bigdata/mongo/data

journal

:enabled

:true

#where to log

systemlog

:path

: /home/bigdata/mongo/log/mongodb.log

:true

destination

: file

# network setting

net:

bindip

: 0.0.0.0

port

:27017

# how the process runs

processmanagement

:fork

:true

# enable journaling,

# journal=true

# 開啟auth,需要賬戶密碼才可以訪問

security

:authorization

: enabled

以上就我個人總結出來的mongo auth,希望可以幫助到你。

mongodb 新增使用者密碼

先以非授權的模式啟動mongodb 非授權 linux mac mongod f etc mongo.conf windows mongod config c mongodb etc mongo.conf 或者 net start mongodb 前提是mongo安裝到了服務裡面 mongo use...

mongodb新增遠端使用者連線

預設mongodb剛剛安裝完是沒有使用者密碼的直接登入即可 ok,這樣我們就建立好了超級管理員的賬號和密碼。第三步,登入認證 db.auth root 123456 1第四步,查詢已新增的使用者 db.system.users.find 第五步,遠端登入使用者 退出mongo,修改配置檔案mongo...

mongodb安裝 認證 新增使用者

1 建立mongdb安裝路徑 mkdir usr local mongodb 3 解壓到 usr local mongodb tar zxvf mongodb linux x86 64 4.0.0 rc7.tgz c usr local mongodb 4 重新命名 mv mongodb linux...