MongoDB数据库用户角色和权限管理详解
查看数据库
使用终端命令行输入mongo登陆mongodb之后切换到admin库,并认证后可查看所有数据库,操作如下所示:
[root@renwole.com~]#mongo
MongoDBshellversionv4.4.0
connectingto:mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicitsession:session{"id":UUID("1ea1-4343-9523-167a101973a9")}
MongoDBserverversion:4.4.0
>useadmin
>db.auth("admin","InaM6Aip#2JBlWwY")
1
>showdbs
admin0.000GB
config0.000GB
local0.000GB
说明:1表示认证成功,0表示认证失败,认证失败后查看数据库无任何返回。
创建数据库及用户
创建一个renwoledb数据库并授权renwole用户为该库的dbOwner角色。另外、MongoDB数据库实行注册制,数据库内无内容时,无法查看到新建的数据库,操作如下:
>userenwoledb
>db.createUser(
{
user:"renwole",
pwd:"renwolecom",
roles:[{role:"dbOwner",db:"renwoledb"}]
}
)
此时已完成了一库一账号的创建。如果创建用户提示无权限,请先使用超级管理员登录之后切换到对应的数据库再创建即可,如下所示:
MongoDBshellversionv4.4.0
connectingto:mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicitsession:session{"id":UUID("7be9-4c30-ad2e-2a5b58127ab7")}
MongoDBserverversion:4.4.0
>userenwoledb
switchedtodbrenwoledb
>db.createUser(
{
user:"renwole",
pwd:"renwolecom",
roles:[{role:"dbOwner",db:"renwoledb"}]
}
)
uncaughtexception:Error:couldn'tadduser:commandcreateUserrequiresauthentication:
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1343:11
@(shell):1:1
>useadmin
switchedtodbadmin
>db.auth("root","renwolecompassword")
1
>userenwoledb
switchedtodbrenwoledb
>db.createUser(
{
user:"renwole",
pwd:"renwolecom",
roles:[{role:"dbOwner",db:"renwoledb"}]
}
)
Successfullyaddeduser:{
"user":"renwole",
"roles":[
{
"role":"dbOwner",
"db":"renwoledb"
}
]
}
添加root用户,拥有整个MongoDB最高权限,建议取消认证模式后,先进入到admin库,再添加root用户权限
>useadmin
>db.createUser({user:"root",pwd:"renwolecom",roles:[{role:"root",db:"admin"}]})
密码修改
修改某个账号的数据库密码需要进入到该数据库,认证后再修改,否则报错,操作如下:
>userenwoledb
>db.changeUserPassword("renwole","renwolecompwdnew")
>db.auth("renwole","renwolecompwdnew")
1
删除用户及数据库
删除用户(必须切换到admin使用最高权限删除某个用户角色)
>db.system.users.remove({user:"renwole"});
WriteResult({"nRemoved":1})
删除所有用户(必须具备超级管理权限才能删除)
>db.system.users.remove({})
删除数据库(必须切换到指定的数据库,然后再删除)
>userenwoledb
switchedtodbrenwoledb
>db.dropDatabase()
{"ok":1}
>
总结
到此这篇关于MongoDB数据库用户角色和权限管理的文章就介绍到这了,更多相关MongoDB用户角色和权限管理内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!