如何在 MongoDB 中重新命名使用者名稱?


要重新命名使用者,你需要使用 update() 和 $set 來設定新使用者名稱。以下為語法 −

db.system.users.update({"user":"yourOldUserName"}, {$set:{"user":"yourNewUserName"}});

首先,顯示來自 MongoDB 資料庫的所有使用者 −

> use admin;
switched to db admin

> db.getUsers();

這將產生以下輸出 −

[
   {
      "_id" : "admin.Chris",
      "user" : "Chris",
      "db" : "admin",
      "roles" : [
         {
            "role" : "readWrite",
            "db" : "test"
         }
      ],
      "mechanisms" : [
         "SCRAM-SHA-1",
         "SCRAM-SHA-256"
      ]
   },
   {
      "_id" : "admin.John",
      "user" : "John",
      "db" : "admin",
      "roles" : [
         {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
         }
      ],
      "mechanisms" : [
         "SCRAM-SHA-1",
         "SCRAM-SHA-256"
      ]
   },
   {
      "_id" : "admin.Robert",
      "user" : "Robert",
      "db" : "admin",
      "roles" : [
         {
            "role" : "readWrite",
            "db" : "sample"
         }
      ],
      "mechanisms" : [
         "SCRAM-SHA-1",
         "SCRAM-SHA-256"
      ]
   }
]

現在將使用者名稱從 ‘John’ 重新命名為 ‘Larry’ −

> db.system.users.update({"user":"John"}, {$set:{"user":"Larry"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

讓我們驗證一下是否已經使用 getUser() 建立了名為 ‘Larry’ 的使用者 −

> db.getUser('Larry');

這將產生以下輸出 −

{
   "_id" : "admin.John",
   "user" : "Larry",
   "db" : "admin",
   "roles" : [
      {
         "role" : "userAdminAnyDatabase",
         "db" : "admin"
      }
   ],
   "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
   ]
}

如果你現在嘗試獲取舊使用者名稱,那麼將顯示一個 null 值。我們來看看 −

> db.getUser('John');

這將產生以下輸出 −

Null

更新於:2019 年 7 月 30 日

2K+ 瀏覽量

開啟你的 職業生涯

完成課程,獲得認證

開始學習
廣告