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