mongo在哪创建管理员_MongoDB添加用户
MongoDB采用基于角色的訪問(wèn)控制(RBAC)來(lái)確定用戶的訪問(wèn)。 授予用戶一個(gè)或多個(gè)角色,確定用戶對(duì)MongoDB資源的訪問(wèn)權(quán)限和用戶可以執(zhí)行哪些操作。 用戶應(yīng)該只有最小權(quán)限集才能確保最小權(quán)限的系統(tǒng)。
MongoDB系統(tǒng)的每個(gè)應(yīng)用程序和用戶都應(yīng)該映射到不同的用戶。 這種訪問(wèn)隔離便于訪問(wèn)撤銷和持續(xù)的用戶維護(hù)。
前提條件
如果啟用了部署的訪問(wèn)控制,則可以使用localhost異常來(lái)創(chuàng)建系統(tǒng)中的第一個(gè)用戶。 此第一個(gè)用戶必須具有創(chuàng)建其他用戶的權(quán)限。 對(duì)于MongoDB 3.0,使用localhost異常只能在admin數(shù)據(jù)庫(kù)上創(chuàng)建用戶。 創(chuàng)建第一個(gè)用戶后,必須使用該用戶進(jìn)行身份驗(yàn)證以添加后續(xù)用戶。 啟用Auth提供有關(guān)在啟用部署訪問(wèn)控制時(shí)添加用戶的更多詳細(xì)信息。
對(duì)于常規(guī)用戶創(chuàng)建,必須擁有以下權(quán)限:
要在數(shù)據(jù)庫(kù)中創(chuàng)建新用戶,必須在該數(shù)據(jù)庫(kù)資源上具有createUser操作。
要向用戶授予角色,必須對(duì)角色的數(shù)據(jù)庫(kù)執(zhí)行g(shù)rantRole操作。
userAdmin和userAdminAnyDatabase內(nèi)置角色在其各自的資源上提供createUser和grantRole操作。
例子
要在MongoDB部署中創(chuàng)建用戶,請(qǐng)連接到部署,然后使用db.createUser()方法或createUser命令添加用戶。
MongoDB是一個(gè)nosql數(shù)據(jù)庫(kù)服務(wù)器。 默認(rèn)安裝提供使用mongo命令通過(guò)命令行訪問(wèn)數(shù)據(jù)庫(kù)而不進(jìn)行身份驗(yàn)證。下面我們來(lái)學(xué)習(xí)如何在具有適當(dāng)身份驗(yàn)證的Mongodb服務(wù)器中創(chuàng)建用戶。
創(chuàng)建管理員用戶
可以使用以下命令在MongoDB服務(wù)器中創(chuàng)建具有管理員權(quán)限的用戶。
$ mongo
> use admin
> db.createUser(
{
user:"maxsu",
pwd:"pwd123",
roles:[{role:"root",db:"admin"}]
}
)
> exit
現(xiàn)在嘗試通過(guò)命令行使用上述用戶憑據(jù)登錄 -
D:\Program Files\MongoDB\Server\3.4\bin>mongo -u maxsu -p --authenticationDatabase admin
MongoDB shell version v3.4.5
Enter password:
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
Server has startup warnings:
2017-07-05T21:16:55.901+0800 I CONTROL [initandlisten]
2017-07-05T21:16:55.902+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-07-05T21:16:55.905+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-07-05T21:16:55.908+0800 I CONTROL [initandlisten]
>
添加數(shù)據(jù)庫(kù)用戶
您還可以創(chuàng)建指定數(shù)據(jù)庫(kù)的用戶,該用戶只能訪問(wèn)該數(shù)據(jù)庫(kù)。也可以為此數(shù)據(jù)庫(kù)上的用戶指定訪問(wèn)級(jí)別。 例如,創(chuàng)建一個(gè)在mydb數(shù)據(jù)庫(kù)上具有讀寫訪問(wèn)權(quán)限的用戶帳戶。
> use mydb
> db.createUser(
{
user: "user01",
pwd: "pwd123",
roles: ["readWrite"]
}
)
> exit
驗(yàn)證身份驗(yàn)證使用以下命令。 返回結(jié)果為1,表示認(rèn)證成功。
> db.auth('user01','pwd123')
1
>
要列出數(shù)據(jù)庫(kù)的所有用戶,請(qǐng)使用以下命令。
> db.getUsers()
上面語(yǔ)句,返回結(jié)果如下所示 -
> db.getUsers()
[
{
"_id" : "mydb.user01",
"user" : "user01",
"db" : "mydb",
"roles" : [
{
"role" : "readWrite",
"db" : "mydb"
}
]
},
{
"_id" : "mydb.user02",
"user" : "user02",
"db" : "mydb",
"roles" : [
{
"role" : "readWrite",
"db" : "mydb"
}
]
}
]
>
刪除數(shù)據(jù)庫(kù)用戶
也可以使用以下命令從數(shù)據(jù)庫(kù)中刪除用戶。
> use mydb
> db.dropUser('user02')
創(chuàng)建帶角色的用戶
以下操作在test數(shù)據(jù)庫(kù)中創(chuàng)建用戶:mynewuser,并向用戶提供readWrite和dbAdmin角色。
use test
db.createUser(
{
user: "mynewuser",
pwd: "myuser123",
roles: [ "readWrite", "dbAdmin" ]
}
);
創(chuàng)建沒(méi)有角色的用戶
以下操作在test數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為mynewuser1的用戶,但尚未分配角色:
use test
db.createUser(
{
user: "mynewuser1",
pwd: "myuser1123",
roles: [ ]
}
);
創(chuàng)建具有角色的管理用戶
以下操作在管理數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為 myadmin1 的用戶,并給予用戶對(duì)config數(shù)據(jù)庫(kù)的 readWrite 訪問(wèn)權(quán)限,這樣可以讓用戶更改分片分區(qū)的某些設(shè)置,例如平衡器設(shè)置。
use admin
db.createUser(
{
user: "myadmin1",
pwd: "myadmin123",
roles:
[
{ role: "readWrite", db: "config" },
"clusterAdmin"
]
}
);
總結(jié)
以上是生活随笔為你收集整理的mongo在哪创建管理员_MongoDB添加用户的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 冒死揭秘安利_赵丽颖新剧开播备受争议?冒
- 下一篇: mysql配置不成功_mysql 5.7