开发者社区> 问答> 正文

一文了解MongoDB如何设置密码

一文了解MongoDB如何设置密码

展开
收起
社区秘书 2019-12-10 16:22:01 1120 0
1 条回答
写回答
取消 提交回答
  • 
    mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。所以所有数据库db都需要设置密码。
    
    mongodb设置管理用户和密码:
    
    1、show dbs
    
    在mongodb新版本里并没有admin数据库,但是并不妨碍第2步操作。
    
    2、use admin 进入admin数据库
    
    3、创建管理员账户
    
    
    db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
    
    mongodb中的用户是基于身份role的,该管理员账户的role是userAdminAnyDatabase。‘userAdmin’代表用户管理身份,
    
    ‘AnyDatabase’代表可以管理任何数据库。
    
    4、验证第3步用户添加是否成功
    
    db.auth("useradmin", "adminpassword") 如果返回1,则表示成功。
    
    exit退出系统。
    
    db.auth()方法理解为用户的验证功能
    
    5、修改配置
    
    
    sudo vi /etc/mongod.conf
    
    找到#security: 取消注释,修改为:
    
    
    
    security:
    
    authorization: enabled #注意缩进,缩进参照配置文件其他配置。缩进错误可能第6步重启不成功。
    
    6、重启mongodb
    
    
    sudo service mongod restart
    
    7、进入mongodb,用第3步的管理员账户登录,用该账户创建其他数据库管理员账号。
    
    
    
    use admin
    
    db.auth("useradmin", "adminpassword")
    
    8、新建你需要管理的mongodb 数据的账号密码。
    
    
    
    use yourdatabase
    
    db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
    
    rote:dbOwner代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等。
    
    9、新建数据库读写账户
    
    
    
    use yourdatabase
    
    db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] })
    
    该用户用于该数据的读写,只拥有读写权限。
    
    10、现在数据的用户名和密码就建好了。
    
    可以使用:mongodb://youruser2:yourpassword2@localhost/yourdatabase来链接。
    
    2019-12-10 16:22:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
阿里云MongoDB云服务构建 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载