mongodb 设置权限

Mongodb提供了数据加权限的方法

  • 开启安全认证模式
    1
    2
    3
    4
    5
    //找到mongodb.conf文件,将auth = true的注释去掉,
    //如果是linux或ubuntu系统使用apt-get安装的mongodb的话
    $ cd /etc
    $ vim mongodb.conf
    //其与系统或其他安装方法没有尝试过,其自行查找


  • admin数据库添加管理员账号
    1
    2
    3
    4
    $ mongo
    $ use admin
    $ db.system.users.find() //看看有没有数据
    $ db.addUser('name','password') //添加管理员账号及密码


  • 用户数据库添加用户管理员账号
    1
    2
    3
    $ mongo
    $ use 'dbName' //dbName为数据库的名
    $ db.addUser('name','password')


  • 重启mongodb
    1
    2
    3
    4
    5
    6
    //关闭mongodb
    $ sudo service mongodb stop
    $ sudo /etc/init.d/mongodb stop
    //开启mongodb
    $ sudo service mongodb start
    $ sudo /etc/init.d/mongodb start


  • mongodb验证登陆
    1
    2
    3
    4
    5
    $ mongo
    $ show dbs //显示数据失败,因为没有认证
    $ use admin //切换到admin数据库
    $ db.auth('name','password') //验证成功返回1,失败返回0
    //也可以切换到普通用户数据库,再进行登陆,两者的登陆权限不同,一个权限是操作所有的数据库,一个是只能操作用户自己的数据库


那么工程应该如何登陆呢?

下面以nodejs工程为例:

1
2
//链接数据库时候要加上用户名和密码
"mongodb://" + dbUsername + ":" + dbPassword + "@" + host + ":" + port + "/" + dbName