yum安装mongodb4.0,开启远程访问及用户权限

1.配置MongoDB的yum源

创建yum源文件:

#cd /etc/yum.repos.d 

#vim mongodb-org-4.0.repo 

使用阿里云的源

[mngodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1

这里可以修改 gpgcheck=0, 省去gpg验证

安装之前先更新所有包 :

# yum update

2.安装MongoDB
安装命令:
yum -y install mongodb-org

安装完成后

查看mongo安装位置 whereis mongod

查看修改配置文件 : vim /etc/mongod.conf

 bindIp: 172.0.0.1  改为 bindIp: 0.0.0.0 或者使用 bindIpAll: true ,运行所有ip访问,bindIp与bindIpAll是互斥,只能启用一个

(注意冒号与ip之间需要一个空格)

3.启动MongoDB 
启动mongodb :systemctl start mongod.service
停止mongodb :systemctl stop mongod.service

查到mongodb的状态:systemctl status mongod.service

4.外网访问需要关闭防火墙:
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

 vim /etc/sysconfig/iptables

iptables文件添加

-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT

(注意:-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT要加在-A INPUT -j REJECT --reject-with icmp-host-prohibited之前,不然启动无效)

重启iptables

service iptables restart

 5.设置开机启动
systemctl enable mongod.service

6.启动Mongo shell
命令:mongo 

查看数据库:show dbs

7.创建用户及权限

7.1、通过非授权的方式启动mongo

7.2、创建admin数据库

use admin

7.3、添加管理员用户
db.createUser({user:"admin",pwd:"123456",roles:["root"]})

备注:用户名和密码可随意定

7.4、认证

db.auth("admin", "123456")

7.5、切换数据库

use test

7.6、创建用户

db.createUser({user: "root", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }]})

7.7、通过客户端连接test数据库(开启权限认证后使用)

 

7.启用权限控制:
编辑mongod.conf
vim /etc/mongod.conf

security:

    authorization: enabled

重启mongodb:systemctl restart mongod.service

8.每个角色可以使用的命令

角色名称:read 可使用的命令

changeStream
collStats
dbHash
dbStats
find
killCursors
listIndexes
listCollections

角色名称:readWrite 可使用的命令

collStats
convertToCapped
createCollection
dbHash
dbStats
dropCollection
createIndex
dropIndex
find
insert
killCursors
listIndexes
listCollections
remove
renameCollectionSameDB
update

这里简单列出常用的两个角色可以使用的命令,其他角色可使用命令参考官方文档:https://docs.mongodb.com/manual/reference/built-in-roles/
创建用户并且授予角色:

创建用户,用户名为read,密码为read,授予read角色,获得demo数据库的读取权限

db.createUser({
    'user': 'read',
    'pwd': 'read',
    'roles': [{
        'role': 'read',
        'db': 'demo'
    }]
})

 

更新用户密码及权限:更新read用户,密码为read。获得demo和role数据库的读取权限

db.updateUser(
    "read",
    {
        pwd: 'read', // or cleartext password
        customData: {
            title: "Senior Manager"
        },
        roles: [{
            role: "read",
            db: "demo"
        }, {
            role: "read",
            db: "role"
        }]
    }
)

 

删除用户

db.dropUser(“read”)

 

posted @ 2020-11-26 11:12  北漂生活  阅读(334)  评论(0编辑  收藏  举报