mongodb創(chuàng)建用戶并設(shè)置權(quán)限
一、掌握權(quán)限,理解下面4條基本上就差不多
1.mongodb是沒(méi)有默認(rèn)管理員賬號(hào),所以要先添加管理員賬號(hào),再開(kāi)啟權(quán)限認(rèn)證。
2.切換到admin數(shù)據(jù)庫(kù),添加的賬號(hào)才是管理員賬號(hào)。
3. 用戶只能在用戶所在數(shù)據(jù)庫(kù)登錄,包括管理員賬號(hào)。
4. 管理員可以管理所有數(shù)據(jù)庫(kù),但是不能直接管理其他數(shù)據(jù)庫(kù),要先在admin數(shù)據(jù)庫(kù)認(rèn)證后才可以。
二、創(chuàng)建用戶
1. 創(chuàng)建管理員賬號(hào)(全局賬號(hào))
Use admin //管理員賬號(hào)只能在admin賬戶下創(chuàng)建 db.createUser({user:‘a(chǎn)dmin’,pwd:‘a(chǎn)dmin123’,roles:[‘userAdminAnyDatabase’,‘dbAdminAnyDatabase’]})
2. 創(chuàng)建數(shù)據(jù)庫(kù)賬號(hào)
use seeker //創(chuàng)建數(shù)據(jù)庫(kù) db.createUser({user:‘test’,pwd:‘test’,roles:[{role:‘dbOwner’,db:‘seeker’}]})
提示:創(chuàng)建用戶使用命令
db.createUser(
{
user:’userName’, //用戶名
pwd:’123456’, //密碼
roles: [ {
role:’userAdmin’, //用戶角色
db:’seeker’ //數(shù)據(jù)庫(kù)名稱
}
]
}
)
三、授予角色
db.grantRolesToUser(“test”,[{ role: “dbOwner”, db: “seeker” } ]) show roles //查看當(dāng)前用戶有哪些角色
當(dāng)前數(shù)據(jù)庫(kù):
{
“role” : “dbAdmin”,
“db” : “seeker”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ] } {
“role” : “dbOwner”,
“db” : “seeker”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ] } {
“role” : “read”,
“db” : “seeker”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ] } {
“role” : “readWrite”,
“db” : “seeker”,
“isBuiltin” : true,
“roles” : [ ],x`
“inheritedRoles” : [ ] } {
“role” : “userAdmin”,
“db” : “seeker”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ]
}
在admin數(shù)據(jù)庫(kù)下會(huì)多角色如下:
{
“role” : “userAdminAnyDatabase”,
“db” : “admin”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ] }
下方列出系統(tǒng)內(nèi)置角色名稱
Database User Roles 普通用戶角色
read
readWrite
Database Administration Roles管理員角色
dbAdmin可以管理數(shù)據(jù)庫(kù)
dbOwner單數(shù)據(jù)庫(kù)最大權(quán)限,dbAdmin,userAdmin
userAdmin可管理當(dāng)前數(shù)據(jù)庫(kù)用戶
Cluster Administration Roles管理員角色
clusterAdmin
clusterManager
clusterMonitor
hostManager
Backup and Restoration Roles 備份和恢復(fù)角色
backup
restore
All-Database Roles 所有數(shù)據(jù)庫(kù)角色
readAnyDatabase在admin下建立,可以讀取所有數(shù)據(jù)庫(kù)的信息
readWriteAnyDatabase在admin下建立,可以讀寫(xiě)所有數(shù)據(jù)庫(kù)的信息 userAdminAnyDatabase在admin下建立,可以管理所有數(shù)據(jù)庫(kù)的用戶 dbAdminAnyDatabase在admin下建立,可以管理所有數(shù)據(jù)庫(kù)的信息(類似于所有數(shù)據(jù)庫(kù)的dbAdmin賬戶)
Superuser Roles
root
四、授權(quán)數(shù)據(jù)庫(kù)
./mongod --fork --dbpath=/data/db --logpath=/data/logs/dblogs–auth //重新啟動(dòng) use seeker db.auth(‘test’,‘test’);
五、訪問(wèn)
本地:
./mongo seeker -u test -p test 遠(yuǎn)程 。/mongo 192.168.0.205:27017/seeker -u test -p test
提示: test數(shù)據(jù)庫(kù)是默認(rèn)進(jìn)入的目錄,如果你不想進(jìn)入test數(shù)據(jù)庫(kù),mongo 后面跟上--nodb即可
附:常用命令
?
評(píng)論
查看更多