MongoDB 6.0.3 使用者管理
引數檔案
vi /mongodb/27017/conf/mongodb.conf vi /mongodb/27018/conf/mongodb.conf vi /mongodb/27019/conf/mongodb.conf 新增引數 auth=true
重啟資料庫
mongosh --port 27017 db.shutdownServer(); mongod -config /mongodb/27017/conf/mongodb.conf
啟動報錯
BadValue: security.keyFile is required when authorization is enabled with replica sets try 'mongod --help' for more information
所有副本集節點都必須要用同一份keyfile,一般是在一臺機器上生成,然後複製到其他機器上,且必須有讀的許可權
建立目錄
[mongo@cjc-db-01 ~]$ mkdir /mongodb/27017/key [mongo@cjc-db-01 ~]$ mkdir /mongodb/27018/key [mongo@cjc-db-01 ~]$ mkdir /mongodb/27019/key
生成key檔案
cd /mongodb/27017/key/ openssl rand -base64 90 -out ./mongo.keyfile chmod 400 mongo.keyfile
複製
cp mongo.keyfile /mongodb/27018/key/ cp mongo.keyfile /mongodb/27019/key/
修改配置檔案指定KEYFILE
分別編輯幾個服務的mongod.conf檔案,新增相關內容:
[mongo@cjc-db-01 ~]$ vi /mongodb/27017/conf/mongodb.conf keyFile=/mongodb/27017/key/mongo.keyfile 其他節點 keyFile=/mongodb/27018/key/mongo.keyfile keyFile=/mongodb/27019/key/mongo.keyfile
啟動資料庫
mongod -config /mongodb/27017/conf/mongodb.conf mongod -config /mongodb/27018/conf/mongodb.conf mongod -config /mongodb/27019/conf/mongodb.conf
登入
[mongo@cjc-db-01 ~]$ mongosh --port 27017 Current Mongosh Log ID:63a14d11c836e43ca102748d Connecting to:mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.1 Using MongoDB:6.0.3 Using Mongosh:1.6.1 For mongosh info see: cjcmonset [direct: primary] test> use admin switched to db admin
建立使用者
db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
登入使用者
db.auth('admin','admin')
繼續建立使用者
db.createUser({user:"root",pwd:"root",roles:["root"]})
普通使用者許可權
db.createUser({user:"cjc",pwd:"cjc",roles:[{role:"readWrite",db:"cjc"}]}) db.auth('cjc','cjc') cjcmonset [direct: primary] cjc> db.t01.find(); [ { _id: ObjectId("63a113836be69aceb7e1ae9b"), tname: 'cjc' }, { _id: ObjectId("63a1217973fc637ac59b96f0"), txx: 'abc' }, { _id: ObjectId("63a126e5406e8620614e4fd5"), aaa: 'ccc' } ]
指定使用者登入
[mongo@cjc-db-01 ~]$ mongosh -u cjc -p cjc --host 192.168.31.200 --port 27017 Current Mongosh Log ID:63a158914d0cfb76efb68786 Connecting to:mongodb://<credentials>@192.168.31.200:27017/?directConnection=true&appName=mongosh+1.6.1 Using MongoDB:6.0.3 Using Mongosh:1.6.1 For mongosh info see: cjcmonset [direct: primary] test>
引數檔案
[mongo@cjc-db-01 ~]$ cat /mongodb/27017/conf/mongodb.conf dbpath=/mongodb/27017/data logpath=/mongodb/27017/log/mongodb.log logappend=true bind_ip = 0.0.0.0 fork = true port = 27017 replSet=cjcmonset auth=true keyFile=/mongodb/27018/key/mongo.keyfile
資料庫許可權說明:
Built-In Roles(內建角色):
1. 資料庫使用者角色:read、readWrite; 2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin; 3. 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4. 備份恢復角色:backup、restore; 5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超級使用者角色:root // 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase) 7. 內部角色:__system
具體角色的功能:
Read:允許使用者讀取指定資料庫 readWrite:允許使用者讀寫指定資料庫 dbAdmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者 clusterAdmin:只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權。 readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權 readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權 userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權 dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。 root:只在admin資料庫中可用。超級賬號,超級許可權
###chenjuchao 20221220 16:55###
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2928763/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB 6.0.3副本集搭建MongoDB
- MongoDB 使用者與許可權管理MongoDB
- 當使用者管理系統遇上python和mongodb後……PythonMongoDB
- Mongodb 管理操作MongoDB
- Mongodb管理命令MongoDB
- MongoDB 分片管理MongoDB
- mongodb使用者許可權管理最全攻略:使用者的建立、檢視、刪除與修改,mongodb入坑之旅MongoDB
- MongoDB 副本集管理MongoDB
- MongoDB使用者許可權管理,設定密碼並連線MongoDB密碼
- mongodb管理工具MongoDB
- mongodb使用者與角色使用MongoDB
- Centos7上安裝、破解bamboo6.0.3CentOS
- MongoDB 資料庫管理和開發:Navicat for MongoDB macMongoDB資料庫Mac
- MongoDB 副本集原理及管理MongoDB
- 【Mongo】mongodb的使用者認證MongoDB
- NoSQLBooster for MongoDB Mac(MongoDB資料庫管理) 8.1.0無限試用版SQLMongoDBMac資料庫
- mongodb分片(sharding)搭建、應用及管理MongoDB
- express框架+mongodb簡易學生管理Express框架MongoDB
- 使用者管理
- mongodb複製集(replica set)搭建及管理MongoDB
- 如何使用m工具安裝和管理MongoDBMongoDB
- 使用mongo-express管理mongodb資料庫ExpressMongoDB資料庫
- MongoDB入門系列(四):許可權管理MongoDB
- 使用者許可權管理之使用者與組管理
- Linux使用者管理Linux
- ARGOCD使用者管理Go
- 3、使用者管理
- oracle 使用者管理Oracle
- MySQL 使用者管理MySql
- MariaDB使用者管理
- MongoDB 資料庫安全之使用者密碼修改MongoDB資料庫密碼
- mongodb關於使用者許可權的總結MongoDB
- Linux命令整理,使用者管理,使用者組管理,系統管理,目錄管理常用命令Linux
- Liunx的使用者管理與組管理
- Linux 使用者和使用者組管理Linux
- MongoDB遷移到Cosmos DB以支援數百萬使用者 - SaketMongoDB
- 使用者管理實現
- PostgreSQL:使用者角色管理SQL