mongodb中的用戶及權限管理


1.1 注意

驗證庫: 建立用戶時use到的庫及用戶的驗證庫,在使用用戶時,要加上驗證庫才能登陸。

對於管理員用戶,必須在admin下創建.
1. 建用戶時,use到的庫,就是此用戶的驗證庫
2. 登錄時,必須明確指定驗證庫才能登錄
3. 通常,管理員用的驗證庫是admin,普通用戶的驗證庫一般是所管理的庫設置為驗證庫
4. 如果直接登錄到數據庫,不進行use,默認的驗證庫是test,不是我們生產建議的.
5. 從3.6 版本開始,不添加bindIp參數,默認不讓遠程登錄,只能本地管理員登錄。

1.2 用戶創建語法

use admin 
db.createUser
{
    user: "<name>",
    pwd: "<cleartext password>",
    roles: [
       { role: "<role>",
     db: "<database>" } | "<role>",
    ...
    ]
}

基本語法說明:
user:用戶名
pwd:密碼
roles:
    role:角色名
    db:作用對象 
role:root, readWrite,read   
使用驗證數據庫登錄: mongo
-u oldboy -p 123 10.0.0.53/oldboy

1.3 用戶管理例子(創建管理員)

創建超級管理員:管理所有數據庫(必須use admin再去創建)
$ mongo
use admin
db.createUser(
{
    user: "root",
    pwd: "root123",
    roles: [ { role: "root", db: "admin" } ]
}
)

驗證創建的用戶

db.auth('root','root123')

 

啟用密碼登錄功能 - 配置文件中,加入以下配置並重新啟動

vim /mongodb/conf/mongo.conf

security:
  authorization: enabled

# 關閉並重啟mongo
mongod -f /mongodb/conf/mongo.conf --shutdown 
mongod -f /mongodb/conf/mongo.conf 

登錄驗證

mongo -uroot -proot123  admin
mongo -uroot -proot123  10.0.0.53/admin

或者
mongo
use admin
db.auth('root','root123')

 

 

查看用戶:

use admin
db.system.users.find().pretty()

 

創建應用用戶

use oldboy
db.createUser(
    {
        user: "app01",
        pwd: "app01",
        roles: [ { role: "readWrite" , db: "oldboy" } ]
    }
)

mongo  -uapp01 -papp01 app

查詢mongodb中的用戶信息

mongo -uroot -proot123 10.0.0.53/admin
db.system.users.find().pretty()

1.4 刪除用戶(root身份登錄,use到驗證庫)

刪除用戶
db.createUser({user: "app02",pwd: "app02",roles: [ { role: "readWrite" , db: "oldboy1" } ]})
mongo -uroot -proot123 10.0.0.53/admin
use oldboy1
db.dropUser("app02")

1.5 用戶管理注意事項

1. 建用戶要有驗證庫,管理員admin,普通用戶是要管理的庫
2. 登錄時,注意驗證庫
mongo -uapp01 -papp01 10.0.0.51:27017/oldboy
3. 重點參數
net:
   port: 27017
   bindIp: 10.0.0.51,127.0.0.1
security:
   authorization: enabled

 

 

 

0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM