mongodb创建用户并设置权限

编程实验

72人已加入

描述

mongodb创建用户并设置权限

一、掌握权限,理解下面4条基本上就差不多

1.mongodb是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。

2.切换到admin数据库,添加的账号才是管理员账号。

3. 用户只能在用户所在数据库登录,包括管理员账号。

4. 管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

二、创建用户

1. 创建管理员账号(全局账号)

Use admin //管理员账号只能在admin账户下创建 db.createUser({user:‘admin’,pwd:‘admin123’,roles:[‘userAdminAnyDatabase’,‘dbAdminAnyDatabase’]})

2. 创建数据库账号

use seeker //创建数据库 db.createUser({user:‘test’,pwd:‘test’,roles:[{role:‘dbOwner’,db:‘seeker’}]})

提示:创建用户使用命令

db.createUser(

{

user:’userName’, //用户名

pwd:’123456’, //密码

roles: [ {

role:’userAdmin’, //用户角色

db:’seeker’ //数据库名称

}

}

三、授予角色

db.grantRolesToUser(“test”,[{ role: “dbOwner”, db: “seeker” } ]) show roles //查看当前用户有哪些角色

当前数据库:

{

“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数据库下会多角色如下:

{

“role” : “userAdminAnyDatabase”,

“db” : “admin”,

“isBuiltin” : true,

“roles” : [ ],

“inheritedRoles” : [ ] }

下方列出系统内置角色名称

Database User Roles 普通用户角色

read

readWrite

Database Administration Roles管理员角色

dbAdmin可以管理数据库

dbOwner单数据库最大权限,dbAdmin,userAdmin

userAdmin可管理当前数据库用户

Cluster Administration Roles管理员角色

clusterAdmin

clusterManager

clusterMonitor

hostManager

Backup and Restoration Roles 备份和恢复角色

backup

restore

All-Database Roles 所有数据库角色

readAnyDatabase在admin下建立,可以读取所有数据库的信息

readWriteAnyDatabase在admin下建立,可以读写所有数据库的信息 userAdminAnyDatabase在admin下建立,可以管理所有数据库的用户 dbAdminAnyDatabase在admin下建立,可以管理所有数据库的信息(类似于所有数据库的dbAdmin账户)

Superuser Roles

root

四、授权数据库

./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数据库是默认进入的目录,如果你不想进入test数据库,mongo 后面跟上--nodb即可

附:常用命令

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分