管理使用者和角色

Databases for MongoDB部署啟用了身份驗證並使用MongoDB's基於角色的存取控制

使用 Cloud Databases CLI 外掛程式Cloud Databases API,在使用者介面的 _服務認證_中新增使用者。

管理使用者

當您佈建 Databases for MongoDB 部署時,會自動建立 admin 使用者。

請先設定管理者密碼,然後再使用它來連接。

admin 使用者具有下列許可權:

  • userAdminAnyDatabase 提供與所有資料庫上 userAdmin 相同的專用權,但 localconfig 除外。userAdminAnyDatabase 提供管理使用者管理權限。 它會在整個叢集上提供 listDatabases 動作。 使用 userAdminAnyDatabase建立並授與角色 給部署上的任何其他使用者,包括任何 MongoDB 內建角色。 例如,若要監視部署,請使用 admin 登入 mongo Shell,並將 clusterMonitor 角色授與任何使用者 (包括其本身)。 使用類似下列的指令:

    db.grantRolesToUser(
     "admin",
     [
       { role: "clusterMonitor", db: "admin" }
     ]
    )
    
  • readWriteAnyDatabase 提供與所有資料庫上 readWrite 相同的專用權,但 localconfig 除外。

  • dbAdminAnyDatabase 提供與所有資料庫上 dbAdmin 相同的專用權,但 localconfig 除外。

在 UI 中設定管理員密碼

從 UI 中選擇您的實例來設定您的管理員密碼 IBM Cloud資源列表。 然後,選取 設定。 接下來,選取 變更資料庫管理者密碼

在 CLI 中設定管理員密碼

從 IBM Cloud CLI Cloud Databases 外掛程式使用 cdb user-password 指令來設定管理密碼。

例如,要設定部署的管理員密碼,請使用下列命令:

ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>

在API中設定管理員密碼

服務的「概觀」畫面「部署詳細資料」區段上顯示的「基礎端點」提供基本 URL,以透過 API 存取此部署。 搭配使用它與 設定指定使用者的密碼 端點,以設定管理者密碼。

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

透過 UI 管理使用者和角色

  1. 轉到您的服務的服務儀表板。
  2. 按一下 服務認證,以開啟 服務認證 區段。
  3. 按一下 新建認證
  4. 為您的新憑證選擇一個描述性名稱。
  5. (選用) 指定新認證使用公用或專用端點。 在 新增線型配置參數 欄位中使用 { "service-endpoints": "public" } / { "service-endpoints": "private" },以產生使用指定端點的連線字串。 未強制使用端點。 它只會控制連線字串中的主機名稱。 依預設會產生公用端點。
  6. 按一下 新增,以佈建新認證。 會自動產生使用者名稱和密碼,以及相關聯的 MongoDB 使用者。

新認證會出現在表格中,且在 _檢視認證_下的按一下複製欄位中,連線字串會以 JSON 形式提供。

從 CLI 或 API 建立使用者不會自動將該使用者的連線字串移入 服務認證。 如果您想要在那裡新增它們,則可以使用現有使用者資訊來建立新的認證。 在 _新增線型配置參數_下的 JSON 欄位中輸入使用者名稱和密碼。 例如,{"existing_credentials":{"username":"Robert","password":"supersecure"}}。 基本上,您發送用戶名和密碼,然後_服務憑證_產生填充了憑證的連接字串。

從現有使用者產生認證不會檢查或建立該使用者。

透過 服務認證 建立的使用者會獲授與角色 readWriteAnyDatabasedbAdminAnyDatabase

如果您需要從 服務認證 建立的使用者具有不同的角色,則可以使用 admin 使用者來變更其角色。

透過 CLI 管理使用者和角色

在 CLI 中建立的使用者會獲授與角色 readWriteAnyDatabasedbAdminAnyDatabase

如果您需要使用者具有不同的角色,則可以使用 admin 使用者來變更其角色。

直接從 CLI 建立的使用者不會出現在 _服務認證_中,但您可以新增它們。

  1. 如果您透過 Cloud Databases CLI 外掛程式 管理服務,請使用 cdb user-create 建立新的使用者。 例如,要為您的部署建立新用戶,請使用下列命令:
ibmcloud cdb user-create <INSTANCE_NAME_OR_CRN> <NEWUSERNAME> <NEWPASSWORD>
  1. 當作業完成時,使用 ibmcloud cdb deployment-connections 指令擷取新使用者的連線字串。

  2. MongoDB 可將使用者資料集中在 admin 資料庫中。 在 mongo Shell 中 使用 show users 指令列出所有使用者及其角色和資料庫許可權。

ibmcloud cdb deployment-connections --start -u admin mongodb-production
Database Password>>
MongoDB shell version v4.0.3
connecting to: mongodb://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users

透過 API 管理使用者和角色

在 API 中建立的使用者會獲授與角色 readWriteAnyDatabasedbAdminAnyDatabase

如果您需要使用者具有不同的角色,請使用 admin 使用者來變更其角色。

直接從 API 建立的使用者不會出現在 _服務認證_中,但您可以新增它們。

服務的 概觀 區段上顯示的 基礎端點 提供基本 URL,可透過 API 存取此部署。 若要建立及管理使用者,請搭配使用基本 URL 與 /users 端點

指令看起來如下:

curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type}
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}' \

若要擷取使用者的連線字串,請搭配使用基本 URL 與 /users/{userid}/connections 端點。

MongoDB-created使用者和角色

如果內建使用者和角色不適合您的環境,請直接在 MongoDB中 建立使用者和角色。 部署的管理使用者有權建立任何角色或專用權集,以在部署上使用。

直接在 MongoDB 中建立的使用者和角色不會出現在 服務認證 中,且不會與 IBM Cloud 帳戶或 IAM 整合。

ibm 用戶

如果您使用 mongo Shell 來列出部署上的使用者,則可能會注意到名為 ibm 的使用者。 ibm 使用者是內部 root 帳戶,用於管理抄寫、叢集作業及其他確保部署穩定性的功能。 不建議變更或刪除 ibm 使用者,這會破壞部署的穩定性。

MongoDB Enterprise Edition 的 ops_manager 使用者

Ops Manager 僅適用於 Databases for MongoDB Enterprise Edition 部署。 ops_manager 使用者類型具有受限許可權。 如需相關資訊,請參閱 Ops Manager 文件