MongoDB 建立使用者
使用 createUser 方法在 MongoDB 中建立使用者管理員。以下示例顯示瞭如何完成此操作。
> db.createUser(
... { user: "Tastones", pwd : "password"
... , roles : [{ role : "userAdminAnyDatabase"
... , db: "admin"}]})
程式碼說明:
- 第一步是指定需要建立的
使用者名稱和密碼。 - 第二步是為使用者分配角色。由於它需要是資料庫管理員,在這種情況下我們已經分配了
userAdminAnyDatabase角色。此角色允許使用者擁有 MongoDB 中所有資料庫的管理許可權。 db引數指定admin資料庫,它是 MongoDB 中的一個特殊Meta資料庫,它儲存該使用者的資訊。
如果命令執行成功,將顯示以下輸出:
輸出:
> db.createUser(
... { user : "Guru99", pwd : "password"
... , roles : [{ role: "userAdminAnyDatabase"
... db: "admin"}]})
Successfully added user: {
"user" : "Guru99".
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
輸出顯示建立了一個名為 Tastones 的使用者,該使用者擁有 MongoDB 中所有資料庫的許可權。
要建立將管理單個資料庫的使用者,我們可以使用上面提到的相同命令,但我們只需要使用 userAdmin 選項。
以下示例說明了如何完成此操作;
> db.createUser(
... { user: "Employeeadmin", pwd : "password"
... , roles : [{ role : "userAdmin"
... , db: "Employee"}]})
程式碼說明:
- 第一步是指定需要建立的
使用者名稱和密碼。 - 第二步是為使用者分配一個角色,在這種情況下,因為需要將資料庫管理員分配給
userAdmin角色。此角色允許使用者僅具有 db 選項中指定的資料庫的管理許可權。 db引數指定使用者應具有管理許可權的資料庫。
如果命令執行成功,將顯示以下輸出:
輸出:
> db.createUser(
... { user : "Employeeadmin", pwd : "password"
... , roles : [{ role: "userAdmin"
... db: "Employee"}]})
Successfully added user: {
"user" : "Employeeadmin".
"roles" : [
{
"role" : "userAdmin",
"db" : "Employee"
}
]
}
輸出顯示已建立名為 Employeeadmin 的使用者,該使用者僅對 Employee 資料庫具有許可權。
管理使用者
首先要了解你需要定義的角色。MongoDB 中提供了完整的角色列表。例如,有一個 read role,它只允許對資料庫進行只讀訪問,然後有 readwrite 角色,它提供對資料庫的讀寫訪問許可權,這意味著使用者可以發出插入、刪除和更新該資料庫中集合的命令。
> db.createuser(
{
user: "Mohan",
pwd: "password",
roles: [
{
role: "read" , db: "Marketing"},
role: "readwrite" , db:"Sales"}
}
]
})
上面的程式碼片段顯示建立了一個名為 Mohan 的使用者,並在多個資料庫中為他分配了多個角色。在上面的示例中,他被賦予對 Marketing 資料庫的只讀許可權和對 Sales 資料庫的 readWrite 許可權。