@H_403_0@1、下载安装包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.0.tgz 2、解压安装配置 cd /opt tar zxvf mongodb-linux-x86_64-3.4.0.tgz
@H_403_0@/** 重命名 **/ mv mongodb-linux-x86_64-3.4.0.tgz mongodb
@H_403_0@/** 进入mongodb目录 **/ cd mongodb
@H_403_0@/** 创建db和日志目录 / mkdir /opt/mongodb/data mkdir /opt/mongodb/data/db mkdir /opt/mongodb/data/logs / logs目录下创建mongodb.log文件 **/ touch mongodb.log
@H_403_0@/** 在mongodb/data目中创建mongodb.conf **/ cd data vi mongodb.conf
@H_403_0@/** 加入相关配置 **/ #端口号 port = 27017 pidfilepath = /opt/monodb/mongo.pid #数据目录 dbpath = /opt/mongodb/data/db #日志目录 logpath = /opt/mongodb/data/logs/mongodb.log nohttpinterface = true bind_ip = 0.0.0.0 #设置后台运行 fork = true #日志输出方式 logappend = true #开启认证 #auth = true
@H_403_0@/** esc :wq 保存退出 **/ 3、运行 cd mongodb
@H_403_0@./bin/mongod --config /opt/mongodb/data/mongodb.conf 4、关闭 ./bin/mongod --config /opt/mongodb/data/mongodb.conf --shutdown
@H_403_0@1、mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证。 2、切换到admin数据库,添加的账号才是管理员账号。 3、用户只能在用户所在数据库登录,包括管理员账号。 4、管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。这一点比较怪 Built-In Roles(内置角色): 1. 数据库用户角色:read、readWrite; 2. 数据库管理角色:dbAdmin、dbOwner、userAdmin; 3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4. 备份恢复角色:backup、restore; 5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 7. 内部角色:__system 具体角色: Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 root:只在admin数据库中可用。超级账号,超级权限
@H_403_0@创建用户管理员 use admin db.createUser({user:"root",pwd:"root123456",roles:["userAdminAnyDatabase"]}) db.auth('root','root123456') 以用户管理员身份登录,并切换数据库,创建数据库用户: 切换到test数据库 use test 创建用户名、密码、角色 db.createUser({user:"username",pwd:"@user123456*",roles:[{role:"readWrite",db:"securitydata"}]}) 设置mongodb配置中的auth为true(/etc/mongod.conf): security: authorization: enabled 验证mongodb数据库权限。 db.auth('user','@user123456*')