mongo的用户角色配置

mongo角色说明:

  Read:允许用户读取指定数据库

  readWrite:允许用户读写指定数据库

  dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

  userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

  clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

  readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

  readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

  userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

  dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

  root:只在admin数据库中可用。超级账号,超级权限

 当前环境win7

1.准备

下载mongodb-win32-x86_64-2012plus-4.2.0.zip https://www.mongodb.com/download-center/community

解压

设置环境变量

PATH=D:\mongodb\bin;%PATH%

2.启动mongo

mongod --dbpath=D:/Mongodata

3.添加用户

mongo的client

mongo

(1)添加管理员

 db.createUser({user:"root",pwd:"root",roles:["userAdminAnyDatabase"]})

 登录

db.auth("root","root")

 (2)添加数据库用户

 db.createUser({user:"baby",pwd:"123456",roles:["readWrite"]})

 (3)查看所有账户

db.system.users.find().pretty()

 

 先授权

 (4)查看当前库下的账户 

 show users

 

(5)忘记超级用户

添加配置文件mongodb.conf

systemLog:
    destination: file
    path: d:/Mongodata/log/mongod.log
storage:
    dbPath: d:/Mongodata
security:
     authorization: enabled

启动

mongod --config "D:/mongodb/bin/mongodb.conf"

 

 修改配置文件,authorization注释,重启mongo,进入终端,查看用户

systemLog:
    destination: file
    path: d:/Mongodata/log/mongod.log
storage:
    dbPath: d:/Mongodata

 

 修改管理员密码

 db.changeUserPassword("root","123456")

 db.updateUser("root",{pwd:"123456"})

 (6)删除用户

db.dropUser("baby")

 

转载于:https://www.cnblogs.com/baby123/p/11533221.html

根据提供的引用内容,出现`Authentication failed`错误可能是由于以下原因之一: 1.用户名或密码错误。 2.连接的数据库不正确。 3.用户没有连接到指定数据库的权限。 为了解决这个问题,你可以尝试以下几个步骤: 1.确保你的用户名和密码是正确的,并且你正在连接到正确的数据库。你可以通过在终端中使用以下命令来验证你的用户名和密码是否正确: ```shell mongo --username your_username --password your_password --authenticationDatabase your_database ``` 2.如果你的用户名和密码是正确的,但是你仍然无法连接到数据库,请确保你的用户有连接到指定数据库的权限。你可以使用以下命令来检查你的用户是否有连接到指定数据库的权限: ```shell use your_database db.getUser("<username>") ``` 如果你的用户没有连接到指定数据库的权限,你可以使用以下命令为用户授予连接到指定数据库的权限: ```shell use your_database db.grantRolesToUser("<username>", [{role: "<role_name>", db: "<database_name>"}]) ``` 其中,`<role_name>`是你想要授予的角色名称,`<database_name>`是你想要授予权限的数据库名称。 3.如果你的用户名和密码是正确的,并且你的用户有连接到指定数据库的权限,但是你仍然无法连接到数据库,请确保你的IP地址已经被授权访问数据库。你可以使用以下命令来检查你的IP地址是否已经被授权访问数据库: ```shell use your_database db.runCommand({connectionStatus : 1}) ``` 如果你的IP地址没有被授权访问数据库,你可以使用以下命令为你的IP地址授权访问数据库: ```shell use your_database db.runCommand({grantRolesToUser: "<username>", roles: [{role: "<role_name>", db: "<database_name>"}], "authenticationRestrictions": [{"clientSource": ["<ip_address>"]}]}) ``` 其中,`<ip_address>`是你想要授权的IP地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值