mongodb带用户权限操作

1. 创建用户

步骤:

(1) 使用不带权限的方式启动mongodb服务,即:mongod --dbpath D:\mongodb\db

(2)  切到 admin 数据库(命令:use admin),查看当前库用户信息(命令:show users)

(3) 创建超级用户,命令:db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]}) 

(4) 重启mongodb服务(使用待权限方式重启)

(5) 切到 admin 数据库(命令:use admin),并执行授权命令:db.auth("admin","admin"),返回结果为 1,标识授权成功,可以执行相关操作,或者授权失败

(6) 切到 需要使用的数据库(如:test),在test数据库下创建用户: db.createUser({user:"testUser",pwd:"testPwd",roles:[{role:"read",db:"test"}]})

(7) 数据库test的用户创建完成

注:

(1) 首先需要在 admin 数据库下创建超级用户(如果已存在,则不需要再次创建)

(2) 为自定义数据库创建用户时,需要在带权限mongodb服务启动下,由admin数据库下的管理员用户创建,即先在admin数据库下管理员用户授权,再切到自定义数据库,创建用户

(3) db.createUser({user:"testUser",pwd:"testPwd",roles:[{role:"read",db:"test"}]}) 中的db中的值是自定义数据库名称


2. 启动Mongodb服务

mongod --dbpath D:\mongodb\db  --auth 

或 

mongod --dbpath D:\mongodb\db -logpath D:\mongodb\log\mongo_log.txt  -auth

注:带上 “--auth “


3. 显示数据库用户信息:show users


4. 删除指定用户:db.dropUser("用户名")


5. 用户角色说明

数据库用户角色:read、readWrite; 
数据库管理角色:dbAdmin、dbOwner、userAdmin; 
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 
备份恢复角色:backup、restore; 
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 
内部角色:__system 
角色说明: 
Read:允许用户读取指定数据库 
readWrite:允许用户读写指定数据库 
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile 
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 
root:只在admin数据库中可用。超级账号,超级权限



除了db.createUser(),下面几个函数也是常用的:
获得数据库的所有用户权限信息:db.getUsers()
获得某个用户的权限信息:db.getUser()
创建角色: db.createRole()
更新角色:db.updateRole()
删除角色:db.dropRole()
获得某个角色信息:db.getRole()
删除用户:db.dropUser()
删除所有用户:db.dropAllUsers()
将一个角色赋予给用户:db.grantRolesToUser()
撤销某个用户的某个角色权限:db.revokeRolesFromUser()
更改密码:db.changeUserPassword()

6. Mongodb客户端通过控制台连接远程Mongodb数据库

   命令:mongo ip:port

  如: mongo 192.168.1.131:27017

7. 在同一台服务器中启动多个mongodb服务

  mongod --dbpath d:/mongodb/data/data  --port 27137 --logpath d:/mongodb/logs/mongodb.logs --logappend


8. 设置开机启动(默认已设置环境变量 )

(1)默认mongodb需要的db目录(d:/mongodb/data/data)和日志文件(d:/mongodb/logs/mongodb.logs)已创建;

(2)启动mongodb服务:mongod --dbpath d:/mongodb/data/data (必须,否则开机启动设置不成功,已验证);

(3)使用管理员用户打开控制台(C:\Windows\System32\cmd.exe 右键管理员用户),执行指令:

    mongod --logpath "D:\mongodb\log\mongodb.log" --logappend -dbpath "D:\mongodb\db" --serviceName "mongodbService" --install

  其他指令:

 删除服务        mongod.exe --logpath "D:\mongodb\log\mongodb.log" --logappend --directoryperdb --dbpath "D:\mongodb\db" --serviceName "mongodbService" --serviceDisplayName "MongoDB" -remove


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值