展开目录
mongodb2.4 添加用户
mongodb
X
陈尼玛的博客
记录开发生涯的踩坑经历,用时间来验证成长
加载中

https://blog.csdn.net/five3/article/details/54632932

mongo开启用户验证

mongod数据库服务默认是不开启用户认证的,此时任何的client端都可以连接并访问mongo服务,只有是网络可以连通即可。

如果需要支持用户认证的功能,则必须要先主动开启该功能,主要的方式就是在启动命令的时候添加一个--auth参数即可,如下清单

/usr/bin/mongod --config /etc/mongodb.conf --auth

通过上述命令启动的mongo服务就会支持认证机制,client连接时如果没有带上正确的用户名和密码的话则会报错。 mongo的用户存储及权限 mongo的用户分为2类,一类是admin用户,用户信息存储位置为admin数据库的system.users集合,admin用户为super user可以访问所有数据库,只有拥有对应的权限; 另一类是普通数据库的用户,用户信息存储位置为对应数据库下的system.users集合,此类用户只拥有所在数据库的访问权限。

需要注意的点:

  1. 给mongo创建用户的时候,需要先创建一个admin用户,然后再创建具体数据库的用户。具体的步骤后面会讲到。
  2. 创建用户前不要使用带--auth参数来启动mongo,需要以非认证模式启动,用户创建成功后再以认证模式启动。

2.4以前版本

~# mongo
MongoDB shell version: 2.3.*
connecting to: test
>
>use admin
>db.addUser("root", "root") ##读写权限
>db.addUser("admin", "admin", true) ##只读权限
>show tables
>db.system.users.find()  ##查询super admin用户
>
>use youdb  ##切换到具体的业务DB
>db.addUser("user", "user") ##读写权限
>db.addUser("user2", "user2", true) ##只读权限
>show tables
>db.system.users.find()  ##查询youdb数据的用户

2.4之后版本

~# mongo
MongoDB shell version: 2.4.*
connecting to: test
>
>use admin
>db.addUser({
            user:'root',
            pwd:'root',
            roles:[
                "readWrite",  ##admin数据库的读写权限
                 "dbAdmin", ##admin数据库的管理权限
                 "userAdmin"], ##admin数据库的用户管理权限
            otherDBRoles:{
                 youdb:[
                     "readWrite", ##youdb数据库的读写权限
                     "dbAdmin", ##youdb数据库的管理权限
                     "userAdmin" ##youdb数据库的用户管理权限
                     ]}
            })  
>db.addUser({user:'admin',pwd:'admin',roles:["read"]})   ##只读权限
>show tables
>db.system.users.find()  ##查询super admin用户
>
>use youdb  ##切换到具体的业务DB
>db.addUser({user:'user',pwd:'user',roles:["readWrite"]) ##读写权限
>db.addUser({user:'user2',pwd:'user2',roles:["read"]) ##只读权限
>show tables
>db.system.users.find()  ##查询youdb数据的用户

2.6之后版本

~# mongo
MongoDB shell version: 2.6.*
connecting to: test
>
>use admin
>db.addUser({
            user:'root',
            pwd:'root',
            roles:[
                {
                    role:"dbAdminAnyDatabase",
                    db:"admin"
                },
                {
                    role:"userAdminAnyDatabase",##任意数据库的用户管理权限
                    db:"admin"
                },
                {
                    role:"userAdmin",##youdb数据库的用户管理权限
                    db:"youdb"
                },
                {
                    role:"readWrite",##youdb数据库的读写权限
                    db:"youdb"
                }]
            })  
>show tables
>db.system.users.find()  ##查询super admin用户
>
>use youdb  ##切换到具体的业务DB
>db.addUser({
            user:'user',
            pwd:'user',
            roles:[
                {
                    role:"read",##youdb数据库的只读权限
                    db:"youdb"
                },{
                    role:"readWrite",##youdb数据库的读写权限
                    db:"youdb"
                }]
            })  
>show tables
>db.system.users.find()  ##查询youdb数据的用户

3.0之后版本

~# mongo
MongoDB shell version: 3.2.*
connecting to: test
>
>use admin
>db.createUser({
            user:'root',
            pwd:'root',
            roles:[
                {
                    role:"dbAdminAnyDatabase",
                    db:"admin"
                },
                {
                    role:"readWriteAnyDatabase",##任意数据库的读写权限
                    db:"admin"
                },
                {
                    role:"userAdmin",##youdb数据库的用户管理权限
                    db:"youdb"
                },
                {
                    role:"readWrite",##youdb数据库的读写权限
                    db:"youdb"
                }]
            })  
>show tables
>db.system.users.find()  ##查询super admin用户
>
>use youdb  ##切换到具体的业务DB
>db.addUser({
            user:'user',
            pwd:'user',
            roles:[
                {
                    role:"read",##youdb数据库的只读权限
                    db:"youdb"
                },{
                    role:"readWrite",##youdb数据库的读写权限
                    db:"youdb"
                }]
            })  
>show tables
>db.system.users.find()  ##查询youdb数据的用户

mongo用户认证登录 

~# mongo
MongoDB shell version: 2.4.9
connecting to: test
>
>use admin
>db.auth('root', 'root')
>show dbs


~# mongo
MongoDB shell version: 2.4.9
connecting to: test
>
>use youdb
>db.auth('user', 'user')
>show dbs

相关文档

  1. mongodb 批量修改字段语句

随便看看

  1. windows电脑防止自动休眠

  2. git 大小写不区分问题

  3. css3自定义滚动条样式

  4. mac ssh透过代理连接

  5. word文件命令行打印

  6. css3 文字渐变色

  7. npm远程服务器某些配置不兼容代理的解决办法

  8. ios13 vpn 能连接但不能传数据问题解决

  9. 树莓派 3B/3B+ usb启动

  10. webpack使用外部资源

  11. python下载文件,带进度条控制

  12. mysql选取内容导出到文件

  13. 猴子选大王算法问题

  14. centos7 开放或者关闭端口

  15. 随机取某个概率区间的代码

  16. bootstrap modal弹框导致ie无法获取焦点

  17. html表格导出csv文件并下载

畅言模块加载中