创建管理员用户
$ mongo
> use admin
> db.createUser(
{
user:"user01",
pwd:"pwd123",
roles:[{role:"root",db:"admin"}]
}
)
> exit
验证账户
$ mongo
> use admin
> db.auth('user01','pwd123')
1
返回1,表示验证通过
获取所有用户
> db.getUsers()
> db.changeUserPassword("reporting", "SOh3TbYhxuLiW8ypJPxmt1oOfL")
删除数据库用户
$ mongo
> use admin
> db.auth('user01','pwd123')
1
> db.dropUser('user02') // user02 为你创建的其他用户
启用身份验证启动
使用fork启动
$ mongod --auth --port 27017 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
如何查询dbpath/logpath
$ ps aux|grep mongo
Node.js 中进行验证连接
连接数据库
mongodb: 'mongodb://user01:pwd123@localhost:27017/dbname?authSource=admin'
abname 填你的dbname
如果使用了session,session的保存也是在mongodb中,那么也需要验证,以express-session为例:
const session = require('express-session');
const MongoStore = require('connect-mongo')(session);
const app = express();
app.use(session({
secret: 'a%y*i#jad^&%$897_+23r&1jk(q!%t-+16HgsuW',
resave: false,
saveUninitialized: true,
cookie: {
maxAge: 60 * 60 * 1000
},
store: new MongoStore({
url: 'mongodb://user01:pwd123@localhost:27017/session?authSource=admin'
})
}));