zl程序教程

您现在的位置是:首页 >  其它

当前栏目

mongdb3.0用户验证问题

用户 验证 问题
2023-09-14 08:57:15 时间

Mongodb2.6的默认用户验证方式是:MONGODB-CR

Mongodb3.0的默认用户验证方式是:SCRAM-SHA-1

 

因为新的验证方式在spring和java中还有一些问题,因此现在项目中3.0的数据库依旧使用之前的验证方式。

 

把3.0的用户验证改为MONGODB-CR,过程如下:

(1)、进入mongoshell,mongodb的bin目录下执行mongo命令:./mongo

  (2)、创建admin数据库,并创建一个用户,指定用户密码和角色:

   use admin

   db.createUser({“user”:”admin”,”pwd”:”admin”,”roles”:[“root”]})

(3)、更改用户验证方式:(注意必须先创建用户才能成功操作这一步)

   var schema=db.system.version.findOne({“_id”:”authSchema”})

    回车后再输入:

    schema.currentVersion=3

    回车后继续输入:

    db.system.version.save(schema)

    回车

(4)、删除刚刚创建的用户:

   db.dropUser(“admin”)

(5)、再次创建一个新的用户:

db.createUser({“user”:”admin”,”pwd”:”admin”,”roles”:[“root”]})

 

2、  Spring配置用户验证:

在spring整合mongodb3.0的jar包中,旧的一些用户验证方式已经被抛弃,因此需要使用新的配置才能成功连接并使用3.0数据库。需要mongo-java-driver-3.0.2.jar和spring-mongo-data-1.7.2.jar或者更高版本的jar。

 

Spring中关于mongodb3.0的配置如下:

?xml version="1.0" encoding="UTF-8"?

beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:p="http://www.springframework.org/schema/p"

    xmlns:mongo="http://www.springframework.org/schema/data/mongo"

    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

     http://www.springframework.org/schema/data/mongo

    http://www.springframework.org/schema/data/mongo/spring-mongo.xsd"

 

    !-- Factory bean that creates the Mongoinstance --

    mongo:mongo-client host="192.168.0.33" port="27017" credentials="aaa:aaa@aaa"id="mongo"  

       mongo:client-options write-concern="SAFE"/  

    /mongo:mongo-client  

 

    mongo:db-factory  id="mongoDbFactory"dbname="admin" mongo-ref="mongo"/  

    bean id="mongoTemplate"  

       constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /  

    /bean   

/beans

 

3、  纯java代码中配置用户验证:

在mongo-java-driver的新驱动中,旧的(mongodb2.6)验证方法也已经被弃用,因此也必须更换新的代码进行验证,而且需要注意的是,在3.0.2.jar中,即便是用了新的方法验证,但是如果不把mongodb中的用户验证方式改回MONGODB-CR,那么依旧验证不通过,所以还必须改回MONGODB-CR才行,至于mongodb3.0.6以后的行不行就还不知道。

 

新的验证方法java代码如下:

ServerAddress sa = new ServerAddress(host, port);  

List MongoCredential  mongoCredentialList = new ArrayList MongoCredential   

mongoCredentialList.add(MongoCredential.createMongoCRCredential(username, database, password.toCharArray()));  

new MongoClient(sa, mongoCredentialList);  

示例:

public DB getMongoDB() {

   if (mongoDB == null) {

     try {

        ServerAddress sa = new ServerAddress("192.168.0.160",47017);

        List MongoCredential mongoCredentialList = new ArrayList MongoCredential   mongoCredentialList.add(MongoCredential.createMongoCRCredential("aaa","aaa","aaa".toCharArray()));

        mongoDB = new MongoClient(sa,mongoCredentialList).getDB("admin");

     } catch (Exception e) {

        throw new RuntimeException("连接MongoDB数据库错误",e);

     }

   }

   return mongoDB;

  }


使用数据库存储Freeswitch账户与密码 FreeSWITCH-CN Google Groups 很好很强大,可 FreeSWITCH 遵循RFC并支持很多高级的SIP特性,如 presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以用作一个SBC进行透明的SIP代理(proxy)以支持其它媒体如T.38等。FreeSWITCH 支持宽带及窄带语音编码,电话会议桥可同时支持8、12、16、24、32及48kHZ的语音。而在传统的电话网络中,要做到三方通话或多方通话需要通过专门的芯片来处理,其它像预付费,彩铃等业务在PSTN网络中都需要依靠智能网(IN)才能实现,而且配置起来相当不灵活。
「OushuDB」用户指南数据定义 创建和管理数据库 (下) 回顾一下 http://www.oushu.com/docs/ch/server-configuration.html 我们知道OushuDB 服务器提供了大量的运行时配置变量。你可以为许多这种变量设置特定于数据库的缺省数值。
「OushuDB」用户指南数据定义 创建和管理数据库 (中) CREATE DATABASE实际上是通过拷贝一个现有的数据库进行工作的。缺省时,它拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的”模板”。如果你给template1增加对象,这些对象将被拷贝到随后创建的用户数据库中。这样的行为允许节点对数据库中的标准套件进行修改。比如,如果你把过程语言PL/Perl安装到template1里,那么你在创建用户数据库的时候它们就会自动可得,而不需要额外的动作。
「OushuDB」用户指南数据定义 创建和管理数据库 (上) 数据库是一些SQL对象(“数据库对象”)的集合;通常每个数据库对象(表、函数等)属于并且只属于一个数据库。不过有几个系统表 (比如pg_database)属于整个集群并且可以在集群之内的每个数据库里访问。更准确地说,一个数据库是一个模式的集合,而模式包含表、函数等等。因此完整的层次是这样的:服务器→数据库→模式→表(或者其它类型对象,比如函数)。
步骤 1:对你的插件进行记录 对你近期在 Confluence 中安装和启用的插件进行记录,这你可以在后期对插件进行重新安装或者调整。
中煜软件,数据库删除凭证 SELECT * FROM [Production].[dbo].[glVoucher] where voucherModule like IC and date = 2017-10-01 DELETE FROM [Production].[dbo].[glVoucher] where voucherModule like IC and date = 2017-10-01  网名:浩秦; 邮箱:root#landv.pw; 只要我能控制一個國家的貨幣發行,我不在乎誰制定法律。
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun