mongodb用户创建mongoose数据库连接

5次阅读

共计 2079 个字符,预计需要花费 6 分钟才能阅读完成。

一、用户创建

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 进入失败。
进入成功后,执行以下:

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

创建后可以查看:

show users;

如果输出以上输入信息,则添加成功。
下面我们来看下 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…

正文完
 0