开发者社区> 问答> 正文

如何设置MongoDB权限

MongoDB默认是不需要输入User和password,客户端就可以登录了 。这个安全问题是很严重的。
但是,如何设置用户名和密码、权限呢?

展开
收起
落地花开啦 2016-02-18 10:55:09 2410 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    添加用户的时候必须在
    1.有相关权限的情况下(后面会说)
    2.mongod没有加 --auth的情况下。(如果加了,你添加权限的话,会出现下面的情况)
    1
    所以我们添加用户时 必须先在没有加 --auth的时候 添加个super admin
    服务起来后,进入./mongo
    2
    这样就说明 已经成功建立了,然后我们试一下权限
    3
    在没有加--auth的情况下 可以正常访问admin喜爱默认的两个表
    >db.system.users.find()
    { "_id" : ObjectId("4e2914a585178da4e03a16c3"), "user" : "sa", "readOnly" : false, "pwd" : "75692b1d11c072c6c79332e248c4f699" }>
    已经成功建立。
    下面把服务加上--auth的选项
    再进入./mongo
    4
    可以看出已经没有访问权限了
    我们就用自己的密钥登录下:
    5
    返回1说明验证成功!
    再show collections下就成功了。
    ....
    我们登录其它表试试:
    6
    也需要验证,试试super admin登录
    7
    返回0验证失败。
    好吧,不绕圈子,其实super admin必须从admin那么登录 然后 再use 其它表才可以
    `use admin
    switched to db admin `
    `> db.auth('sa','sa')
    1 `
    `> use test
    switched to db test `
    > show collections
    如果想单独访问一个表 用独立的用户名,就需要在那个表里面建相应的user
    8
    当然必须有相关权限才可以建立
    再登录看看:
    9

    2019-07-17 18:43:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载