cd /soft
centos6.5 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.9.tgz (有时候很慢直接下载上传吧)
centos7 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.9.tgz
tar zxvf mongodb-linux-x86_64-rhel62-3.2.9.tgz
mv mongodb-linux-x86_64-rhel62-3.2.9 mongodb
rm -r mongodb-linux-x86_64-rhel62-3.2.9.tgz
cd mongodb/
mkdir db
mkdir logs
mkdir conf
cd conf
编辑配置文件:
vi mongodb.conf
输入以下内容:
dbpath=/soft/mongodb/db
logpath=/soft/mongodb/logs/mongodb.log
pidfilepath=/soft/mongodb/mongodb.pid
bind_ip=0.0.0.0
port=27017
fork=true
shardsvr=true
auth=false
启动:
/soft/mongodb/bin/mongod -f /soft/mongodb/conf/mongodb.conf
root用户
设置开机自动启动mongodb
vi /etc/rc.d/rc.local
/soft/mongodb/bin/mongod -f /soft/mongodb/conf/mongodb.conf
进入mongodb的shell模式:
/soft/mongodb/bin/mongo
创建数据库
use test-youren;
db.test.insert({'id':1});
use dev-youren;
db.test.insert({'id':1});
show dbs;
添加账号密码,指定访问数据库youren
use admin;
db.createUser( { user: "root", pwd: "gzyr123",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
db.createUser( { user: "admin", pwd: "admin", roles: [ { role: "root", db: "admin" } ] });
use test-youren;
db.createUser( { user: "test-youren", pwd: "test-youren", roles: [ { role: "readWrite", db: "test-youren" } ] });
db.createUser( { user: "youren_r", pwd: "rhnn9iBPzj8PwzAD", roles: [ { role: "read", db: "test-youren"} ] });
use dev-youren;
db.createUser( { user: "dev-youren", pwd: "dev-youren", roles: [ { role: "readWrite", db: "dev-youren" } ] });
db.createUser( { user: "youren_r", pwd: "rhnn9iBPzj8PwzAD", roles: [ { role: "read", db: "dev-youren" } ] });
验证权限
use admin;
db.auth("root", "123") ;
db.auth("admin", "admin") ;
use test-youren;
db.auth("test-youren", "test-youren") ;
db.auth("youren_r", "rhnn9iBPzj8PwzAD") ;
use dev-youren;
db.auth("dev-youren", "dev-youren") ;
db.auth("youren_r", "rhnn9iBPzj8PwzAD") ;
use admin ;
db.auth("admin", "admin") ;
db.shutdownServer() ;
vi mongodb.conf
修改 auth=true
重新启动 /soft/mongodb/bin/mongod -f /soft/mongodb/conf/mongodb.conf
进入mongodb的shell模式:
/soft/mongodb/bin/mongo
重新验证权限
关闭方法
方法一
ps -ef |grep mongodb 找到你要查找的进程号
kill -9 pid 杀掉
方法二
也可以进入到mongo数据库里面进行操作
./mongo
use admin
db.shutdownServer();
增加管理员权限:
userAdminAnyDatabase 这个角色拥有分配角色和用户的权限,但没有查写的缺陷
root 这是超级管理员
readWrite 有读写权限
read 有读权限
1、添加一个用户 复制代码代码如下添加用户、设置密码、是否只读 :
db.addUser("name");
db.addUser("userName", "pwd123", true);
2、数据库认证、安全模式 :
db.auth("userName", "123123");
3、显示当前所有用户 复制代码代码如下:
show users;
4、删除用户 :
db.dropUser("userName");
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在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