MongoDB服務配置系列問題

來源:互聯網
上載者:User
MongoDB服務配置系列問題 通過設定檔佈建服務:
dbpath=F:\Program\DATA\Mongo\db #資料存放區路徑logpath=F:\Program\DATA\Mongo\logs\mongo.log #日誌儲存路勁logappend=true #日誌寫入方式:追加port=27017 #連接埠#auth=true #是否認證bind_ip=0.0.0.0 serviceName = MongoDB #服務名稱serviceDisplayName = MongoDB
1、安裝設定檔:

在mongdb的bin目錄下在 cmd 中以管理員身份執行以下命令:

mongod --install -f F:\Program\DATA\Mongo\mongodb.conf 

執行此命令後在 ‘此電腦–管理–服務和應用程式–服務’中可以看到服務名稱MongoDB。 2、關閉、啟動、刪除服務:

net stop MongoDB #停止一個服務net start MongoDB #開啟一個服務sc delete MongoDB #刪除一個服務 sc delete "服務名"  (如果服務名中間有空格,就需要前後加引號)
開啟或關閉使用者名稱和密碼登陸:

auth = true 或者 auth = false 說的是串連資料庫是否要求輸入密碼驗證,對應使用者名稱和密碼。

下面說一說如何開啟密碼驗證:

admin資料庫是管理員資料庫,記錄使用者資訊,我們需要先在這個資料庫中建立一個管理使用者。然後通過這個管理使用者在其他資料庫下添加、修改或者刪除那個資料庫的使用者。

use admindb.createUser(... ...   {... ...     user: "****",... ...     pwd: "****",... ...     roles: [ { role: "root", db: "admin" } ] #'root'擁有最高許可權。... ...   }... ... )

關閉服務:

net stop MongoDB 

修改設定檔:

dbpath=F:\Program\DATA\Mongo\db #資料存放區路徑logpath=F:\Program\DATA\Mongo\logs\mongo.log #日誌儲存路勁logappend=true #日誌寫入方式:追加port=27017 #連接埠auth=true #把false 改成 truebind_ip=0.0.0.0 serviceName = MongoDB #服務名稱serviceDisplayName = MongoDB

重新安裝設定檔:

mongod --install -f F:\Program\DATA\Mongo\mongodb.conf

這個時候,進入到資料庫進行操作的時候,發現沒有相應許可權,下一步登陸。

use admindb.auth('username','password')use test1 #切換到資料庫test1#為test1建立一個使用者db.createUser(...     {...       user: "testuser",...       pwd: "testpassword",...       roles: [ { role: "read", db: "test1" }]...     }
在 pymongo 中串連 mongodb:
import pymongoclient = pymongo.MongoClient('localhost', connect=True)client['test1'].authenticate('testuser','testpassword',mechanism="DEFAULT")。#這一步的作用是登陸。登陸成功返回TRUE。db = client['test1'] #登陸成功後,再串連資料庫。db.test.find_one() #查詢db.test.insert_one({'b':2}) #插入。#role決定了使用者的許可權。如果是唯讀使用者,則不能進行這一步操作。for i in db.test.find():    print(i)client['test'].logout() #退出資料庫。

mongodb開啟了認證認證後,我發現不能通過pymongo建立新的資料庫。

#舉例:client = pymongo.MongoClient('localhost', connect=False)db = client['jianshu']db.table1.insert({'a':1}) #這一步報錯,提示沒有認證登陸。可這是一個新的資料庫,根本都還沒寫入mongodb,怎麼認證。

這個時候有兩個辦法: 一是在mongo終端中先建立一個資料庫,設定好使用者後,在pymongo中通過使用者名稱和密碼串連。 二是關閉認證。 如何關閉認證:

#關閉MongoDB服務net stop MongoDB#修改設定檔auth = false#安裝設定檔mongod --install -f F:\Program\DATA\Mongo\mongodb.conf#開啟服務:net start MongoDB
使用者授權相關操作

在哪個庫下建立使用者,這個使用者就屬於哪個庫,且只對這個庫有存取權限。

Mongodb 的授權採用了角色授權的方法,每個角色包括一組許可權。

資料庫使用者角色:read、readWrite;

資料庫管理角色:dbAdmin、dbOwner、userAdmin;

超級使用者角色:root // 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase) 1、建立使用者

db.createUser(...     {...       user: "test1",...       pwd: "test1",...       roles: [ { role: "dbOwner", db: "test1" }]...     }
2、修改密碼
db.changeUserPassword('testuser','1234') #把資料庫test的密碼改為1234
3、添加使用者權限
db.grantRolesToUser(  "testuser",  [    { role: "read",db:"admin"}  ] )
4、收回使用者權限
db.revokeRolesFromUser("testuser",[    { role: "read",db:"admin"}  ] )
5、刪除使用者
db.dropUser("testuser")
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.