MongoDB认证&Java API接口调用

    xiaoxiao2021-12-14  28

    由于MongoDB初始安装状态默认是不需要授权的,但是在正式应用时为了安全起见,均采用认证机制。

    以下为在Windows下的一个成功认证应用(Linux类似):

    在MongoDB安装完成后(默认不认证)的时候,切换到admin数据库,新增2用户,如下所示: db.createUser( { “user” : “user1”, “pwd”: “123456”, “roles” : [ { role: “readWrite”, db: “admin” } ] })

    db.createUser( { “user” : “dba”, “pwd”: “123456”, “roles” : [ { role: “userAdminAnyDatabase”, db: “admin” } ] }) 注意: 在新增用户user1的时候我个人认为是可以省掉的,但是本人是这么操作了,因配置成功所以暂未测试去掉会有什么影响, 在新增用户的时候 如果增加成功,会提示Success….的。

    在新增用户成功后,下一步需要修改注册表, 进入系统注册表(WIN+R–>regedit) 找到[HKEY_LOCAL_MACHINE–>SYSTEM–>CurrentControlSet–>Services–>MongoDB]在右边的健-值列表中打到 “ImagePath” 我的是这样: “C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe” –dbpath D:\mongodb\data –logpath D:\mongodb\logs\mongodb.log –service 修改为 “C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe” –dbpath D:\mongodb\data –logpath D:\mongodb\logs\mongodb.log –auth –service

    重启MongoDB服务。(可以在任务管理器里重启)

    现在连入mongodb 进入你想要的数据库,我的数据库为 mytest 先切换到admin use admin 对dba进行授权 db.auth(“dba”,”123456”); 在授权成功后 切换到需要授权的数据库 mytest use mytest 然后添加以下用户: db.createUser( { “user” : “user2”, “pwd”: “123456”, “roles” : [ { role: “readWrite”, db: “sp2p” } ] })

    添加成功后,在mytest下对user2进行认证 db.auth(“user2”,”123456”);

    至此授权结束,可以对mytest进行相关操作了,可以使用 show collections 进行测试,如果授权成功,下面将显示该数据库下所有集合(当然也可能没有)。

    但是如果授权失败,将会出现相应授权失败信息。

    Windows一个比较简便的连接方法便是: 在进入bin目录后,用以下连接串连接: mongo mytest -u user2 -p 123456

    Java授权调用如下: MongoClient client = null; try { MongoCredential credential = MongoCredential.createCredential(“username” , “dbname”, “pwd”); ServerAddress addr = new ServerAddress(“ip”, port); client = new MongoClient(addr, Arrays.asList(credential)); DB db = client.getDB(MongoDBCfg.DB_SP2P); // 以下可以对db进行相关操作 } catch (Exception e) {

    } finally { if (client != null) { client.close(); } }

    转载请注明原文地址: https://ju.6miu.com/read-962082.html

    最新回复(0)