MongoDB鉴权降级

背景:业务反馈由于MongoDB迁移导致PHP客户端连接DB异常,排查发现MongoDB3.0版本的鉴权认证机制是SCRAM-SHA-1,程序驱动异常,需降级为鉴权认证机制:MONGODB-CR
 
鉴权降级操作如下(在无鉴权地情况下登陆):
1、配置文件注释鉴权
security:
   keyFile: /data1/ceshi27020_mongo/etc/keyfile
   authorization: enabled
2、重启mongo
3、在主上执行如下命令:
db.system.users.find();
db.system.version.findOne();
var schema = db.system.version.findOne({"_id" : "authSchema"}) 
schema.currentVersion = 3 
db.system.version.save(schema) 
重建用户:
db.dropUser('test_rw');
db.createUser( { "user" : "test_rw",
"pwd": "iwoCsl173",
"roles" : [{ role: "readWrite", db: "lsession" }] });
4、开启鉴权,重启MongoDB
 
3.0版本的鉴权认证机制:SCRAM-SHA-1
降级之后的鉴权认证机制:MONGODB-CR
 
PHP连接MongoDB代码示例:
root@xxx-xxxx:/# cat mongo.php 
<?php
$server = 'mongodb://10.x.x.x:27030';
$options = array(
                'db'=>'admin',//',
                'username' => 'dba',//',
                'password' => 'xxxxxxxx',
                'replicaSet' => 'test3',
                'readPreference' => MongoClient::RP_SECONDARY_PREFERRED,
                // 'readPreference' => MongoClient::RP_PRIMARY,
                'connectTimeoutMS'=>5000,
                );
$mongo = new MongoClient($server, $options);
$db = $mongo->selectDB('zyq');
$coll = $db->selectCollection('test10');
$result = $coll->find(array("userid"=>30748));
while($doc = $result->getNext()){
        var_dump($doc);
}
执行OK!

转载于:https://www.cnblogs.com/DBA-3306/p/11097245.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值