Windows环境下给MongoDB设置密码

安全问题

Mongodb安装后自身是没有密码的,用户连接只需填写id地址,端口号,数据库名称即可,只要你服务器的mongodb数据库端口开放,任何人的电脑都可以连接到你的数据库,操作修改你的mongodb数据,盗取你的数据库,然后留下一个邮箱和账号,要求你给比特币才肯归还数据库给你

下面就简单记录下自己倒腾MongoDB时候设置密码的操作。

一、连接上MongoDB

在命令行输入mongo连接上数据库(默认数据库已经安装并且成功启动,不知道怎么安装启动可参考https://blog.csdn.net/qq_33692349/article/details/85176128)输入show dbs查看数据库

二、切换到 'admin' 数据库 

use admin

三、给admin设置用户密码

db.createUser({user: 'root', pwd: '123456', roles: ['root']})

其中user: 用户名, pwd: 用户密码,roles: 用来设置用户的权限,如读,读写 等等

四、验证是否设置成功

db.auth(用户名,用户密码) 这里用db.auth('root', '123456') 如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败..

.

五、重启MongoDB

这次重启必须把设置的auth设置为true

到此admin也就是超级管理员的密码已经完成了,可操作所有的数据库,以及给单个数据库添加用户和权限,其连接方式为

xxx.db('mongodb://your name: your pwd@ ip :27017');
your name:为用户名
your pwd:为密码

使用可视化连接也需要输入密码,直接连接将报错

使用刚才设置的root用户和密码123456连接

此时便可成功连接

到此,数据库密码设置就已经完成了。

现在要给特定的每个库设置权限,开发者可以直接用用户直接连指定的数据库操作,比如我这里有一个库,库名字叫做test,这里以test这个库为例,我们要给他新建一个用户userTest具有写的权限,开发者便可直接使用userTest这个账号密码去操作这一个数据库,而无法操作其他数据库

一、连接数据库后并切换到test数据库

use test

二、为这个库添加一个用户,并且赋予权限

db.createUser(
                {
                    user:'testUser',
                    pwd:'123456',
                    roles: [{role:'readWrite',db:'test'}]
                }
)


这行代码意思是 创建一个testUser用户 给予读写权限 db表示该用户操作的数据库名 role设置为‘dbOwner’则表示该用户可对数据进行任何操作,对开发者一般都用dbOwner角色

mongodb role类型

  • 数据库用户角色(Database User Roles):

read:授予User只读数据的权限
readWrite:授予User读写数据的权限

  • 数据库管理角色(Database Administration Roles):

dbAdmin:在当前dB中执行管理操作
dbOwner:在当前DB中执行任意操作
userAdmin:在当前DB中管理User

  • 备份和还原角色(Backup and Restoration Roles):

backup
restore

  • 跨库角色(All-Database Roles):

readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理User的权限
dbAdminAnyDatabase:授予管理所有数据库的权限

  • 集群管理角色(Cluster Administration Roles):

clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
hostManager:管理Server
 

三、重启MongoDB

OK,一切搞定可单独使用testUser这个用户名去直接连接test这个库

xxx.db('mongodb://your name: your pwd@ ip :27017/test');
your name:为用户名就是testUser
your pwd:为密码就是123456

接下来在说一下删除用户:

一、首先用超级管理员登录

二、切换到要删除的用户所管理的数据库上

例如,testUser用户管理test数据库。首先切换到shop数据库

三、再删除shopuser用户

db.dropUser('testUser')

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值