mongodb 权限管理初试

1、操作环境:

mongodb 3.4 安装版

数据位置:C:\data\db

(因为启动的时候找不到数据位置,所以加上这个文件夹就可以了,但是我在安装的时候明明写在了D:\data\db,而且也重新加了mongod.cfg,但是仍然不会找这个D盘的文件夹,有待考证)

2、cmd命令行重启mongodb服务,不能在管理工具里的服务列表中启动。启动命令:mongo --auth

3、到现在mongodb就是以权限控制的形式打开了

4、有些人对mongodb的理解不错:

c.1 MongoDB是没有默认管理员账号的,所以要先添加管理员账号,在开启权限认证。
c.2 切换到admin数据库,添加的账号才是管理员的账号。
c.3 用户只能在用户所在的数据库登录,包括管理员账号。
c.4 管理员可以管理所有的数据库,但是不能直接管理其它数据库,要先在admin数据库中认证才可以,也是为了 安全性考虑。
①账号是跟着数据库走的。 

②认证数据库并不会限制账号的权限。(即:也可以操作其他数据库)

5、实验流程:

use admin

db.createUser(创建管理员admin)

db.auth(管理员){如果返回1,说明用户已通过验证}

在admin的权限下,可新建访问数据库的用户。

或者到所需数据库下,新建用户。


6、springmvc 配置mongodb用户权限

(1)applicationContext-service.xml:

<mongo:mongo  host="${mongo.host}" port="${mongo.port}">
  <mongo:options
     connections-per-host="${mongo.connectionsPerHost}"
     threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
     connect-timeout="${mongo.connectTimeout}"
     max-wait-time="${mongo.maxWaitTime}"
     auto-connect-retry="${mongo.autoConnectRetry}"
     socket-keep-alive="${mongo.socketKeepAlive}"
     socket-timeout="${mongo.socketTimeout}"
     slave-ok="${mongo.slaveOk}"
     write-number="1"
     write-timeout="0"
     write-fsync="true"/>
</mongo:mongo>


<mongo:db-factory dbname="${mongo.dbname}" id="mongoDbFactory" mongo-ref="mongo"
username="该数据库下的用户名" password="密码"/>
<mongo:mapping-converter id="converter" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
      <!--   <constructor-arg ref="mongo" />
        <constructor-arg name="databaseName" value="${mongo.dbname}" /> -->
        <constructor-arg ref="mongoDbFactory" />

    </bean>

  <bean  id ="gridFsTemplate" class="org.springframework.data.mongodb.gridfs.GridFsTemplate" scope="prototype">
    <constructor-arg ref="mongoDbFactory" />
    <constructor-arg ref="converter" />

  </bean>

7、在服务列表中以权限方式添加服务:

https://www.cnblogs.com/yjq-code/p/6880625.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值