一、用户创建
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…