當前位置:首頁 » 數據倉庫 » mongodb修改資料庫密碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mongodb修改資料庫密碼

發布時間: 2022-10-16 13:38:27

① java對所有mongodb表進行增刪改查表名怎麼設置

一、MongoDB資料庫參數配置

1、推薦使用mongodb.cfg.properties配置,則在構造MongoDBService對象的時候只需調用無參構造方法即可自動完成配置。

源代碼:(完整項目文件下載鏈接:點擊打開鏈接)

MongoDBServiceImpl.java

public class MongoDBServiceImpl implements MongoDBService {private String dbName;private String collName;private DB db;//有參構造方法,指定資料庫名與集合名public MongoDBServiceImpl(String dbName, String collName) {this.dbName = dbName;this.collName = collName;try {db = getDb();} catch (Throwable e) {e.printStackTrace();}}//無參構造方法,返回配置文件配置的資料庫對象引用,如果配置文件中沒有設置則返回默認資料庫對象引用public MongoDBServiceImpl() {getDb();}/** 獲取資料庫對象,3種情況(優先順序從高到低):*1、構造方法指定2、配置文件指定3、默認資料庫*(情況2、3在MongoDButil中設置)*/public DB getDb() {if (this.db == null) {if (this.dbName == null) {this.db = MongoDBUtil.getDB();} else {this.db = MongoDBUtil.getDBByName(this.dbName);}}return this.db;}/** 獲取集合對象,3種情況(優先順序從高到低):*1、構造方法指定2、配置文件指定3、默認資料庫*(情況2、3在MongoDButil中設置)*/public DBCollection getCollection() {if(this.collName != null){return db.getCollection(this.collName);}else {return MongoDBUtil.getDBCollection();}}public DBObject map2Obj(Map<string, object=""> map) {DBObject obj = new BasicDBObject();if (map.containsKey("class") && map.get("class") instanceof Class)map.remove("class");obj.putAll(map);return obj;}//插入數據public void insert(DBObject obj) {getCollection().insert(obj);}//插入多條數據public void insertBatch(List<dbobject> list) {if (list == null || list.isEmpty()) {return;}List<dbobject> listDB = new ArrayList<dbobject>();for (int i = 0; i < list.size(); i++) {listDB.add(list.get(i));}getCollection().insert(listDB);}//刪除數據public void delete(DBObject obj) {getCollection().remove(obj);}//刪除多條數據public void deleteBatch(List<dbobject> list) {if (list == null || list.isEmpty()) {return;}for (int i = 0; i < list.size(); i++) {getCollection().remove(list.get(i));}}//獲取集合中的數據數量public long getCollectionCount() {return getCollection().getCount();}//查找符合條件的數據數量public long getCount(DBObject obj) {if (obj != null)return getCollection().getCount(obj);return getCollectionCount();}//查找符合條件的數據public List<dbobject> find(DBObject obj) {DBCursor cur = getCollection().find(obj);return DBCursor2list(cur);}//查找符合條件的數據並排序@Overridepublic List<dbobject> find(DBObject query, DBObject sort) {DBCursor cur;if (query != null) {cur = getCollection().find(query);} else {cur = getCollection().find();}if (sort != null) {cur.sort(sort);}return DBCursor2list(cur);}//查找符合條件的數據並排序,規定數據個數@Overridepublic List<dbobject> find(DBObject query, DBObject sort, int start,int limit) {DBCursor cur;if (query != null) {cur = getCollection().find(query);} else {cur = getCollection().find();}if (sort != null) {cur.sort(sort);}if (start == 0) {cur.batchSize(limit);} else {cur.skip(start).limit(limit);}return DBCursor2list(cur);}//將DBCursor轉化為list<dbobject>private List<dbobject> DBCursor2list(DBCursor cur) {List<dbobject> list = new ArrayList<dbobject>();if (cur != null) {list = cur.toArray();}return list;}//更新數據public void update(DBObject setFields, DBObject whereFields) {getCollection().updateMulti(whereFields, setFields);}//查詢集合中所有數據public List<dbobject> findAll() {DBCursor cur = getCollection().find();List<dbobject> list = new ArrayList<dbobject>();if (cur != null) {list = cur.toArray();}return list;}//由ID獲取數據public DBObject getById(String id) {DBObject obj = new BasicDBObject();obj.put("_id", new ObjectId(id));DBObject result = getCollection().findOne(obj);return result;}public String getDbName() {return dbName;}public void setDbName(String dbName) {this.dbName = dbName;this.db = MongoDBUtil.getDBByName(this.dbName);}public String getCollName() {return collName;}public void setCollName(String collName) {this.collName = collName;}@Overridepublic void printListDBObj(List<dbobject> list) {// TODO Auto-generated method stubfor(DBObject dbObject: list){System.out.println(dbObject);}}}</dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></string,>

MongoDBUtil.java

public class MongoDBUtil {// 定義默認配置,1、IP地址 2、埠號 3、用戶名 4、密碼 5、配置文件位置名 6、資料庫名private static final String MONGODB_ADDRESS = "127.0.0.1";private static final int MONGODB_PORT = 27017;private static final String MONGODB_USERNAME = "root";private static final String MONGODB_PASSWORD = "";private static final String MONGODB_RESOURCE_FILE = "mongodb.cfg.properties";private static final String MONGODB_DBNAME = "test";private static final String MONGODB_COLLECTIONNAME = "test";// 定義靜態變數,1、Mongo對象(代表資料庫連接)2、DB對象(代表資料庫)3、集合名4、資料庫相關配置映射集合5、已獲取的資料庫連接private static Mongo mongo;private static DB db;private static DBCollection collection;private static Map<string, string=""> cfgMap = new HashMap<string, string="">();private static Hashtable<string, db=""> mongoDBs = new Hashtable<string, db="">();/*** 初始化Mongo的資料庫*/static {init();}/*** 獲取配置文件中配置的DB對象*/public static DB getDB() {return db;}/*** 獲取配置文件中配置的DBCollection對象*/public static DBCollection getDBCollection() {return collection;}/*** 根據資料庫名稱,得到資料庫 如果不存在,則創建一個該名稱的資料庫,並設置用戶名和密碼為配置文件中的參數值** @param dbName* @return DB*/@SuppressWarnings("deprecation")public static DB getDBByName(String dbName) {DB db = mongo.getDB(dbName);if (!mongoDBs.contains(db)) {System.out.println("add");db.addUser(cfgMap.get("mongo.db.username"),cfgMap.get("mongo.db.password").toCharArray());mongoDBs.put(dbName, db);}return db;}// ————————————————————————————————————初始化過程————————————————————————————————————/*** 獲取配置文件mongedb.cfg.properties的文件對象*/public static File getConfigFile() {String path = MongoDBUtil.class.getResource("/").getPath();String fileName = path + MONGODB_RESOURCE_FILE;System.out.println(fileName);File file = new File(fileName);if (file.exists()) {return file;}return null;}/*** 通過mongedb.cfg.properties配置文件初始化配置映射集合,如果沒有編寫配置文件,則載入程序指定的默認配置*/@SuppressWarnings("unchecked")private static void initCfgMap() {File file = getConfigFile();if (file != null) {Properties p = new Properties();try {p.load(new FileInputStream(file));for (Enumeration enu = p.propertyNames(); enu.hasMoreElements();) {String key = (String) enu.nextElement();String value = (String) p.getProperty(key);cfgMap.put(key, value);}} catch (IOException e) {System.out.println("載入Mongo配置文件失敗!");e.printStackTrace();}} else { // 如果沒有編寫配置文件,則載入默認配置cfgMap.put("mongo.db.address", MONGODB_ADDRESS);cfgMap.put("mongo.db.port", String.valueOf(MONGODB_PORT));cfgMap.put("mongo.db.username", MONGODB_USERNAME);cfgMap.put("mongo.db.password", MONGODB_PASSWORD);cfgMap.put("mongo.db.dbname", MONGODB_DBNAME);cfgMap.put("mongo.db.collectionname", MONGODB_COLLECTIONNAME);}}/*** 初始化Mongo的資料庫(將db指向相應對象引用,將collection指向相應對象引用,通過mongoDBs記錄現有資料庫對象)*/@SuppressWarnings("deprecation")private static void init() {initCfgMap();try {String address = cfgMap.get("mongo.db.address");int port = Integer.parseInt(cfgMap.get("mongo.db.port").toString());String dbName = cfgMap.get("mongo.db.dbname");String username = cfgMap.get("mongo.db.username");String password = cfgMap.get("mongo.db.password");String collectionName = cfgMap.get("mongo.db.collectionname");mongo = new Mongo(address, port);if (dbName != null && !"".equals(dbName)) {db = mongo.getDB(dbName);if (username != null && !"".equals(username)) {db.addUser(username, password.toCharArray());if (collectionName != null && !"".equals(collectionName)) {collection = db.getCollection(collectionName);}}mongoDBs.put(dbName, db);}} catch (Exception e) {e.printStackTrace();}}}

② python中mongodb怎麼連接其他伺服器的資料庫

對於mongo的操作,先安裝mongodb的python擴展,在你的命令行窗口上輸入:pip install pymongo,下面是例子,按需要修改

from pymongo import MongoClientimport timemongo_uri_auth = 'mongodb://user:password@localhost:27017/'#mongo有要驗證的話請自行替換user和passwordmongo_uri_no_auth = 'mongodb://localhost:27017/' #mongo沒有賬號密碼驗證的時候用這個database_name = 'request_db' # 你要連接的資料庫名,自行替換你需要的庫名table_name = 'request_tb' #你要查詢的表名,請自行替換你需要的表名client = MongoClient(mongo_uri_no_auth)#創建了與mongodb的連接db = client[database_name]table = db[table_name] #獲取資料庫中表的游標#你要插入的數據insert_data = {"name": "Mike", "grade": "two", "age": 12, "sex": "man"}table..insert_one(insert_data ) #插入一條數據#查詢數據name為Mike的記錄record = table.find_one({"name": "Mike"})print record

③ 如何給mongodb管理員許可權

1.用戶許可權說明

A.MongoDB是沒有默認管理員賬號,所以要先添加管理員賬號,再開啟許可權認證。

B.切換到admin資料庫,添加的賬號才是管理員賬號。

C.用戶只能在創建用戶對應的資料庫中完成認證,包括管理員賬號。

D.管理員可以管理所有資料庫,但是不能直接管理其他資料庫,要先在admin資料庫認證後才可以。

2.MongoDB資料庫角色

A.資料庫用戶角色:read、readWrite;

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

C.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

D.備份恢復角色:backup、restore;

E.所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

F.超級用戶角色:root

角色說明:

Read:允許用戶讀取指定資料庫

readWrite:允許用戶讀寫指定資料庫

dbAdmin:允許用戶在指定資料庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile

userAdmin:允許用戶向system.users集合寫入,可以找指定資料庫里創建、刪除和管理用戶

clusterAdmin:只在admin資料庫中可用,賦予用戶所有分片和復制集相關函數的管理許可權。

readAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的讀許可權

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

userAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的userAdmin許可權

dbAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的dbAdmin許可權。

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

3.添加管理員賬號及完成認證

db.createUser({user:』root』,pwd:』zuchezaixian』,roles:[{role:』root』,db:』admin』}]})

註:所有資料庫下的用戶都在admin的users集合中可以查詢到:db.system.users.find()

配置文件指定啟用身份認證,重啟MongoDB服務。

重啟後執行show dbs會提示未認證,我們需要切換到admin資料庫下完成管理員賬號認證:

完成認證後,就可以成功執行show dbs了。

4.Spring配置用戶認證

mongodb.properties中指定管理員賬號及對應的資料庫名。

在spring-data-mongodb 1.7版本後需要在mongo-client

中設置credentials屬性來指定管理員信息,credentials的配置形式是:「用戶名:密碼@默認資料庫」,如:credentials="${mongo.user}:${mongo.pwd}@${mongo.defaultDbName}"

④ mongodb創建的資料庫默認用戶名密碼多少

方法如下: 創建資料庫 use tt 這樣就創建了一個資料庫,如果什麼都不操作離開的話,這個庫就會被系統刪除.所以還要執行下面的命令: db.usr.insert({'name':'tompig'}); db.usr.insert({'name':'tompig1','id':1});

⑤ mongodb3.0沒有admin資料庫了,怎麼添加超級管理員

修改 /etc/mongod.conf 文件。mongoDB默認情況下任何客戶端都可以連接27017埠,且沒有認證,默認情況下沒有管理員帳戶。通過修改這個配置文件可以更改為登陸時進行許可權認證。
mongoDB中如果想要給某個資料庫創建一個用戶,需要首先進入該資料庫,然後使用addUser命令。在這里也可以將用戶設置為只讀(db.addUser("jack","jack",true),第三個參數表示是否時「只讀用戶」)。

要使用超級管理員,需要先連接admin資料庫並登陸管理員帳戶,然後連接其他資料庫就可以行使管理員許可權。

用戶信息保存及認證過程

類似Mysql將系統用戶信息保存在mysql.user表。MongoDB也將系統用戶的username、pwd保存在admin.system.users集合中。其中pwd = md5(username + 「:mongo:」 + real_password)。這本身並沒有什麼問題。username和:mongo:相當於對原密碼加了一個salt值,即使攻擊者獲取了資料庫中保存的md5 hash,也沒法簡單的從彩虹表中查出原始密碼。

許可權管理常用命令

1. #進入資料庫admin

use admin

2. #增加或修改用戶密碼

db.addUser('name','pwd')

3. #查看用戶列表

db.system.users.find()

4. #用戶認證

db.auth('name','pwd')
這一個返回1就認證成功了,只有認證成功才能對資料庫進行操作

5. #刪除用戶

db.removeUser('name')

6. #查看所有用戶

show users

7. #查看所有資料庫

show dbs

8. #查看所有的collection

show collections

9. #查看各collection的狀態

db.printCollectionStats()

10. #查看主從復制狀態

db.printReplicationInfo()

⑥ mongodb怎麼查密碼復雜度策略

咨詢記錄 · 回答於2021-10-27

⑦ mongodb spring用戶名密碼怎麼配置

方法如下:
創建資料庫
use
tt
這樣就創建了一個資料庫,如果什麼都不操作離開的話,這個庫就會被系統刪除.所以還要執行下面的命令:
db.usr.insert({'name':'tompig'});
db.usr.insert({'name':'tompig1','id':1});
隨便整了2個表,這個無所謂的,反...

⑧ 如何建立一個含有用戶名和密碼的mongodb的資料庫

方法如下:
創建資料庫
use tt
這樣就創建了一個資料庫,如果什麼都不操作離開的話,這個庫就會被系統刪除.所以還要執行下面的命令:
db.usr.insert({'name':'tompig'});
db.usr.insert({'name':'tompig1','id':1});
隨便整了2個表,這個無所謂的,反正要導入表的話就刪除掉這2個就可以了,目前只是想讓資料庫保持住.
然後使用命令查看是否有保存tt這個資料庫:
show dbs
3.配置用戶
use tt
db.addUser('mongodb','123456');
mongodb是用戶名,123456是密碼.
好了,這樣一個資料庫和對這個資料庫配置用戶就完成了.
mongodb常用命令:
1、Help查看命令提示
help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();
2、切換/創建資料庫
use yourDB; 當創建一個集合(table)的時候會自動創建當前資料庫
3、查詢所有資料庫
show dbs;
4、刪除當前使用資料庫
db.dropDatabase();
5、從指定主機上克隆資料庫
db.cloneDatabase(「127.0.0.1」); 將指定機器上的資料庫的數據克隆到當前資料庫
6、從指定的機器上復制指定資料庫數據到某個資料庫
db.Database("mydb", "temp", "127.0.0.1");將本機的mydb的數據復制到temp資料庫中
7、修復當前資料庫
db.repairDatabase();
8、查看當前使用的資料庫
db.getName();
db; db和getName方法是一樣的效果,都可以查詢當前使用的資料庫
9、顯示當前db狀態
db.stats();
10、當前db版本
db.version();
11、查看當前db的鏈接機器地址
db.getMongo();
Collection聚集集合
1、創建一個聚集集合(table)
db.createCollection(「collName」, {size: 20, capped: 5, max: 100});
2、得到指定名稱的聚集集合(table)
db.getCollection("account");
3、得到當前db的所有聚集集合
db.getCollectionNames();
4、顯示當前db所有聚集索引的狀態
db.printCollectionStats();
用戶相關
1、添加一個用戶
db.addUser("name");
db.addUser("userName", "pwd123", true); 添加用戶、設置密碼、是否只讀
2、資料庫認證、安全模式
db.auth("userName", "123123");
3、顯示當前所有用戶
show users;
4、刪除用戶
db.removeUser("userName");
其他
1、查詢之前的錯誤信息
db.getPrevError();
2、清除錯誤記錄
db.resetError();

⑨ linux怎麼修改mongodb的用戶名和密碼

不知道你用什麼語言連接mongodb,以下是用mongo的shell打開資料庫:#創建一個庫:
use mytest
#添加一個用戶account,pwd
db.addUser("wangming","1234")
#查看當前庫中的用戶
db.system.users.find()
#連接時候通過auth命令進行連接(account,pwd)
db.auth("wangming","1234")
如果是用pymongo連接mongo,如下
#連接mongodb服務
con = MongoClient(host,port)
#選擇資料庫
db = con[dbname]
#用用戶名登陸
db.authenticate(account, pwd)
mongodb還是挺好用的,祝你快速上手。

⑩ mongodb在java中怎麼做修改操作

java 操作mongodb插入、讀取、修改以及刪除基礎

本文主要講述如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作。文章內容如下:第一步:安裝MongoDB無需太多的繁雜步驟,你只要在MongoDB官方網站查看安裝說明,根據自己的操作系統進行選擇適應的版本即可。第二步:啟動MongoDB伺服器這一步也很簡單。運行mongod.exe文件里的bin文件夾(我使用的是Windows OS系統),並啟動MongoDB伺服器。在默認的情況下伺服器將啟動埠27017,你需要在安裝過程中創建將數據存儲在/data/db目錄里。第三步:啟動MongoDB shell指令你可以通過運行mongo.exe文件來啟動MongoBD shell。第四步:利用MongoDB創建資料庫利用MongoDB在MongoDB shell中輸入以下內容建立一個名為「company」的資料庫。use company 記住,除非你在MangoDB里保存了一些東西,否則它不會自動為你保存。使用下面的命令幫你查看可用的資料庫,它會顯示「company」尚未被創建。show dbs; 第五步:在MongoDB中保存數據使用下面的命令來保存employee 數據代表一個collection,將其命名為employees。employee = {name : "A", no : 1} db.employees.save(employee) 通過使用下面的命令來查看collection里的數據。db.users.find(); 如何使用Java操作MongoDB?下面是是一段簡單的Java代碼,你可以在這里獲得mongo-java驅動。很簡單,只需要使用下面的代碼,重復上面的操作即可。package com.eviac.blog.mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MongoDBClient { public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("company"); DBCollection collection = db.getCollection("employees"); BasicDBObject employee = new BasicDBObject(); employee.put("name", "Hannah"); employee.put("no", 2); collection.insert(employee); BasicDBObject searchEmployee = new BasicDBObject(); searchEmployee.put("no", 2); DBCursor cursor = collection.find(searchEmployee); while (cursor.hasNext()) { System.out.println(cursor.next()); } System.out.println("The Search Query has Executed!"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } } 結果如下:{ "_id" : { "$oid" : "4fec74dc907cbe9445fd2d70"} , "name" : "Hannah" , "no" : 2} The Search Query has Executed! 小結:隨著互聯網Web2.0網站的興起,非關系型的資料庫現在成了一個極其熱門的新領域,非關系資料庫產品的發展也非常迅速。本文淺顯的談及了如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作的問題。如果您是這方面的專家不妨與我們分享下。本文為CSDN編譯整理,未經允許不得轉載。