Mongodb授权管理

首先你要搞mongodb授权你首先要搞清楚你的版本

这里使用3.x版本做演示,别的版本不讨论~

1.认证方式:mongodb认证方式包括2种,进入认证,和 连接认证。

进入认证就是:进入到mnogodb后进行认证(废话)

[success]
use admin
db.auth(“myUserAdmin”, “abc123” )
[/success]

连接认证就是:连接到mongodb就开始连接认证(废话)
[info]mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”[/info]
2.构建认证体系:你要想构建认证体系,你首先需要一个全新的mongodb,有数据的也行,唯一的要求就是没有开启认证,也就是无密码模式,故名思意就是直接可以通过 端口 +地址进行连接的mongodb无密码模式。

进入mongo环境
设置设置一个最大权限控制的管理员账户 权限为所有权限 userAdminAnyDatabase
[danger]use admin
db.createUser(
{
user: “myUserAdmin”,
pwd: “abc123”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)[/danger]

有了超级管理权限后,就可以关闭数据库了。

然后在开启数据库的后面增加 –auth 例如:
[warning]mongod –port 27017 –dbpath /data/db1 –auth[/warning]
启动数据库后 使用之前提过的
连接方式1进入数据库
[success]use admin
db.auth(“myUserAdmin”, “abc123” )[/success]
连接方式2进入数据库
[info]mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”[/info]
进入数据库后 方可以继续设置权限:

这里根据需求如下:

设置 mytester用户,此用户有test库的读写权限,有reporting库的读权限 密码为 xyz123

首先,进入数据库test
use test
按照需求增加用户权限即:

[danger]db.createUser(
{
user: “myTester”,
pwd: “xyz123”,
roles: [ { role: “readWrite”, db: “test” },
{ role: “read”, db: “reporting” } ]
}
)[/danger]

完成以上配置,再开启一个mongo客户端进行连接测试即:

[success]mongo –port 27017 -u “myTester” -p “xyz123” –authenticationDatabase “test”[/success]

或者

[info]mongo –port 27017
use test
db.auth(“myTester”, “xyz123″ )[/info]

GET了吗!

[successbox title=”参考文章”]
mongo官方文档:
https://docs.mongodb.com/v3.4/tutorial/enable-authentication/
[/successbox]

MongoDB增删改查,以及常用操作

非关系型数据库NOSQL

数据库常用操作

use DATABASE_NAME

直接进入数据库,没有则创建该数据库

db

查看当前选择得数据库,默认为刚刚创建数据库

show dbs

查看数据库

删除数据库

db.dropDatabase()

集合的操作collection

show collections

查看集合

db.collections_name.insert({“name”:”heike07″})

没有集合的插入数据会创建集合

db.collections_name.drop()

删除集合

document(tables)操作

db.user.insert({"name":"jack","age":20})
增
db.user.remove({"name":"joe"})
删 db.user.update({"name":"jack"},{$inc:{"age":30}}) //年龄增加30 改
db.collection.find({ "key" : value }) 查 查询高级操作 
  1. 查找key=value的数据
    db.collection.find({ "key" : value })
  2. key > value
    db.collection.find({ "key" : { $gt: value } })
  3. key < value
    db.collection.find({ "key" : { $lt: value } })
  4. key >= value
    db.collection.find({ "key" : { $gte: value } })
  5. key <= value
    db.collection.find({ "key" : { $lte: value } })
  6. value1 < key <value2
    db.collection.find({ "key" : { $gt: value1 , $lt: value2 } })
  7. key <> value
    db.collection.find({ "key" : { $ne: value } })
  8. 取模运算,条件相当于key % 10 == 1 即key除以10余数为1的
    db.collection.find({ "key" : { $mod : [ 10 , 1 ] } })
  9. 不属于,条件相当于key的值不属于[ 1, 2, 3 ]中任何一个
    db.collection.find({ "key" : { $nin: [ 1, 2, 3 ] } })
  10. 属于,条件相当于key等于[ 1, 2, 3 ]中任何一个
    db.collection.find({ "key" : { $in: [ 1, 2, 3 ] } })
  11. $size 数量、尺寸,条件相当于key的值的数量是1(key必须是数组,一个值的情况不能算是数量为1的数组)
    db.collection.find({ "key" : { $size: 1 } })
  12. $exists 字段存在,true返回存在字段key的数据,false返回不存在字度key的数据
    db.collection.find({ "key" : { $exists : true|false } })
  13. 正则,类似like;“i”忽略大小写,“m”支持多行.如joe会匹配出来
    db.collection.find({ "name":/^j/,"name":/e$/ })
  14. $or或 (注意:MongoDB 1.5.3后版本可用),符合条件a=1的或者符合条件b=2的数据都会查询出来
    db.collection.find({ $or : [{a : 1}, {b : 2} ] })
  15. 符合条件key=value ,同时符合其他两个条件中任意一个的数据
    db.collection.find({ "key": value , $or : [{ a : 1 } , { b : 2 }] })
  16. 内嵌对象中的值匹配,注意:”key.subkey”必须加引号
    db.collection.find({ "key.subkey" :value })
  17. 这是一个与其他查询条件组合使用的操作符,不会单独使用。上述查询条件得到的结果集加上$not之后就能获得相反的集合。
    db.collection.find({ "key": { $not : /^val.val$/i } })
  18. $where中的value,就是我们非常熟悉,非常热爱的js
    db.collection.find({ $where:function(){return this.name=="joe"} })

以上高级查询细节节选自网络

完!

heike07~

Mongodb数据库安装与配置

Mongodb数据库介绍:非关系型数据库,支持JSON。

Mongodb数据库官方下载地址:

https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl?_ga=2.250358223.894756950.1496976265-337762207.1496976265

下载后zip解压得到以下文件结构:

mogodb—3.4—x64
  |-bin
    |-mongo.exe
    |- ...
  ...

第一步:创建数据库存放位置文件夹
这里按照以下文件结构创建:

mogodb—3.4—x64
|-bin
  |-mongo.exe
  |- ...
|-data
  |-db

第二步:创捷日志文件存放位置
这里按照以下文件结构创建:

mogodb—3.4—x64
|-bin
  |-mongo.exe
  |- ...
|-data
  |-db
|-log
  |-mogo.log

第三步:创建配置文件,为下面创建服务打基础
这里按照以下文件结构创建:

mogodb—3.4—x64
|-bin
  |-mongo.exe
  |- ...
|-data
  |-db
|-log
  |-mogo.log
mogodb.config

打开配置文件编写:

dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongodb.log 

dbpath为数据库存放位置
logpath为日志存放位置
应以实际配置位置为准
第四步:写入服务
在mongodb>bin目录下 执行命令:

mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"

没有保存即成功,有报错检查权限
windows 服务中 找到 MongoDB 点击启动
查看LOG日志 如果有日志 即为成功
浏览输入http://localhost:27017/
如果出现It looks like you are trying to access MongoDB over HTTP on the native driver port.
恭喜你 数据库启动成功
可以喝杯卡布奇诺休息一下了.

另:不通过WIN服务来启动:

bin>mongod.exe --dbpath d:\MongoDB\data

完!
heike07~