mongodb笔记

一、启动mongo

/etc/init.d/mongod start

二、进入mongo命令:mongo

1、显示所有库:show dbs;

2、切换库:use admin (如果没有则创建)

3、查看表:show collections;(为空,没有表)

4、设置管理员(存放在admin库中,即admin库中创建的用户都是管理员,管理员需要通过admin认证后,才能访问管理其他数据库;普通用户(即在非admin库下创建的用户),只能对自己所在库进行相关权限操作):

db.addUser('admin','admin') 

#输出:{
        "user" : "admin",
        "readOnly" : false,
        "pwd" : "7c67ef13bbd4cae106d959320af3f704"
}

5、再次查看表:show collections;
#输出:system.indexes
              system.users

6、查看管理员:db.system.users.find()

#输出:{ "_id" : ObjectId("52fa03f4a8bb860225848c52"), "user" : "admin", "readOnly" : false, "pwd" : "7c67ef13bbd4cae106d959320af3f704" }

7、设置访问权限:vim /etc/mongodb.conf

将 #auth = true前的注释去掉,

8、重启mongo:/etc/init.d/mongod restart 

9、再次进行相关操作:show dbs;

输出:assert failed : listDatabases failed:{
        "assertion" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
        "assertionCode" : 10057,
        "errmsg" : "db assertion failure",
        "ok" : 0
}
Tue Feb 11 19:21:51 uncaught exception: assert failed : listDatabases failed:{
        "assertion" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
        "assertionCode" : 10057,
        "errmsg" : "db assertion failure",
        "ok" : 0
}

因为没有做管理员/用户认证

10、用户认证:db.auth('admin','admin')
输出:0

认证失败,原因是admin用户不在test库里,它属于admin(在admin库创建的)

11、使用admin库:use admin

13、未用户认证前,进行操作:show collections; 

输出:Tue Feb 11 19:27:25 uncaught exception: error: {
        "$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
        "code" : 10057
}

12、用户认证:db.auth('admin','admin')
输出:1

认证成功

13、在admin库下进行操作:show collections; 

输出:system.indexes
            system.users

三、利用admin管理员对其他数据库进行用户授权验证

1、切换到admin数据库中

   use admin

2、使用admin管理员账号

  db.auth('admin','admin')

3、切换到database_other库

  use database_other

4、添加账号database_other数据库中所要授权的账号

  db.addUser('user','password')

5、对该用户进行授权认证

  db.auth('user','password')

之后就可以进行用该账号操作database_other库了

四、python连接客户端

import pymongo

#uri = "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"
uri = "mongodb://%s:%s@%s:%s/%s?connectTimeoutMS=3000"

self.client = pymongo.MongoClient(uri % ('xiaoming','123456','127.0.0.1',27017,'db1'))

self.db = self.client.get_default_database()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值