mongodb用户创建、mongoose数据库连接

一、用户创建

1、创建超级管理员
a.首先开启Mongo服务,然后切换admin数据库

use admin;

b.创建

db.createUser({user:"root",pwd:"ceshi123",roles:[{role:"root",db:"admin"}]});

c.修改mongodb.conf配置文件
添加代码:

auth=true

如果有以下代码,可修改

noauth=true // 修改为auth=true

保存mongodb.conf文件

d.创建超级管理员之后,重新启动mongodb服务

use admin;
db.shutdownServer(); //关闭服务
exit;

下一步要进入到mongodb安装目录下的bin
如果是windows系统,可以直接去mongodb/bin目录下打开命令shell,具体操作方法:按住shift+鼠标左键可快速打开shell,输入启动命令:

./mongod -f /usr/local/mongodb/conf/mongodb.conf
./mongod

如果是linux服务器,可以直接到mongodb/bin目录下

cd /usr/local/mongodb/bin  // 小编mongodb的安装目录是/usr/local
./mongod -f /usr/local/mongodb/conf/mongodb.conf
./mongod

经过以上操作,现在创建了操作mongodb的超级管理员;
下边我们针对我们要使用的数据库进行创建管理员

2、创建指定数据库管理员
a.进入到指定数据库,这里采用testDB

mongo //启动mongodb
use admin;
db.auth("root","ceshi123");

如果shell出现1则为进入mongodb成功,为0进入失败。
b.进入成功后,执行以下:

use testDB;
db.createUser({user:"admin",pwd:"test123",roles:[{role:"root",db:"admin"}]}); // 这里role的权限一定是root,否则node-express-mongoose会读不到数据

创建后可以查看:

show users;

如果输出以上输入信息,则添加成功。

删除用户:

db.dropUser("admin");

下面我们来看下 mongodb 一共有哪些权限:

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数据库中可用。超级账号,超级权限

二、mongoose连接

const config = {
    DB_URL: 'mongodb://admin:test123@127.0.0.1:27017/testDB'
};
mongoose.connect(config.DB_URL);

解释说明:
‘mongodb://admin:test123@127.0.0.1:27017/testDB’
// admin 管理员用户名
// test123 管理员密码
// testDB 要连接的数据库

参考链接:
1、https://blog.csdn.net/zgrbsbf…
2、https://blog.csdn.net/szu_lzz…
3、https://blog.csdn.net/leihui_…
4、https://www.cnblogs.com/leino…
5、http://yijiebuyi.com/blog/f9e…

    原文作者:sourcenode
    原文地址: https://segmentfault.com/a/1190000020101377
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞