com.mongodb.MongoCommandException:命令失败,错误13:'未授权短信执行命令

时间:2016-10-23 17:33:13

标签: java mongodb

我正在尝试使用mongodb进行身份验证并获得以下错误:

com.mongodb.MongoCommandException:命令失败,错误13:'未经授权短信执行命令。

我的数据库名称是“sms”。

我的mongoTemplate bean如下所示:

<bean id="mongo" class="com.mongodb.Mongo">
        <constructor-arg name="host" value="${mongodb_host}" />
        <constructor-arg name="port" value="${mongodb_port}" />
</bean>

    <bean id="mongoCredentials" class="org.springframework.data.authentication.UserCredentials">
        <constructor-arg name="username" value="${mongodb_username}"> </constructor-arg>
        <constructor-arg name="password" value="${mongodb_password}" ></constructor-arg>
    </bean>

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongo" ref="mongo" />
        <constructor-arg name="databaseName" value="${mongodb_name}" />
        <constructor-arg name="userCredentials" ref="mongoCredentials"/>
    </bean>

我使用以下命令在mongo上创建用户。

use sms
db.runCommand({ createRole: "myAdmin",
privileges: [
    { resource: { db: "sms", collection: "" }, actions: [ "find", "update", "insert", "remove" ] },
  ],
  roles: [
    { role: "readWrite", db: "sms" }
  ],
  writeConcern: { w: "majority" , wtimeout: 5000 }
})
db.createUser({"user":"user1","pwd":"admin123","roles":[{"role":"readWrite","db":"sms"}]})

db.auth("user1","admin123") --> gave me 1.

我可以通过RoboMongo客户端连接到我的数据库并创建集合并成功添加文档,但是无法通过我的Java代码。请帮我解决这个问题。

0 个答案:

没有答案