欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB入门

程序员文章站 2022-05-08 14:54:31
...

MongoDB入门

什么是mongoDB?

	是一种面向文档的数据库管理系统,它是介于一个关系型数据库和非关系型数据库的之间的一种产品,MongoDb的功能丰富,它是一种支持类似JSON和BSON数据格式,既可以支持简单的数据格式,也可以存储复杂的数据类型.MongoDB最大的特点是它支持的查询语言非常强大,并且还支持数据建立索引.总体来说,mongDB是一款应用相当广泛的nosql型数据库

MongoDB的安装

1.下载地址是

mongodb下载地址

wget  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.9.tgz

2.下载下来后解压缩

[aaa@qq.com mongodb]# tar -zxvf mongodb-linux-x86_64-3.4.9.tgz

3.进入mongodb根目录创建db和logs

mkdir db
mkdir logs

4.进入bin目录配置配置文件,在,里面可能没有配置文件,创建即可

vim mongodb.conf

5.配置文件内容

dbpath=/opt/mongodb/db #这个是自己的文件目录地址
logpath=/opt/mongodb/logs/mongodb.log #这个也是自己的文件目录地址
port=27017
fork=true
nohttpinterface=true

6.启动mongodb

./mongod -f mongodb.conf

启动成功标识

MongoDB入门

7.客户端访问

./mongo 

访问成功界面

MongoDB入门

8.切换用户命令

use 用户名
#退出客户端访问必须在admin用户下
use admin
db.shutdownServer()

安全管理

上面我们所做的所有的操作都没有涉及到用户,我们在用 Oracle、MySQL 或者 MSSQL 时都有用户名密码需要登录才可以操作,MongoDB 中当然也有,但是需要我们手动添加。在添加之前,我们先来说说 MongoDB 中用户管理的几个特点:

  1. MongoDB 中的账号是在某一个库里边进行设置的,我们在哪一个库里边进行设置,就要在哪一个库里边进行验证。
  2. 创建用户时,我们需要指定用户名、用户密码和用户角色,用户角色表示了该用户的权限。

创建用户

给admin创建一个用户;

use admin
db.createUser({user:"root",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

user 表示用户名,pwd 表示密码,role 表示角色,db 表示这个用户应用在哪个数据库上。用户的角色,有如下几种(参考资料):

角色名 备注
Read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 只在admin数据库中可用。超级账号,超级权限

创建用户成功后需要关闭mongodb服务,以security的方式启动.然后进入.查看dbs

mongod -f /opt/mongodb/bin/mongodb.conf --auth
./mongo
show dbs

此时我们看到没有权限

MongoDB入门

此时我们需要先进入到 admin 数据库中,然后授权,操作如下:

use admin
db.auth("root","123")

MongoDB入门

auth 方法执行结果返回 1 表示认证成功。然后再去执行 show dbs 就可以看到预期结果了。此时我再在 sang 库下创建一个只读用户,如下:

use sang
db.createUser({user:"readuser",pwd:"123",roles:[{role:"read",db:"sang"}]})

创建成功之后,再按照上面的流程进入到 sang 库中,使用 readuser 用户进行认证,认证成功之后一切我们就可以在 sang 库中执行查询操作了,步骤如下:

use sang
db.auth("readuser","123")

做完这两步之后再执行查询操作就没有任何问题了,但是此时如果执行插入操作会提示没有权限,那我们可以创建一个有读写功能的用户执行相应的操作,这里就不再赘述。

相关标签: MongoDb

上一篇: MongoDB入门

下一篇: MongoDB入门