zoukankan      html  css  js  c++  java
  • mongodb设置账号密码(window版本)

    在默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。

    好处是,用户可以即时上手,不用担心被一堆配置弄的心烦意乱。

    坏处是,公网服务器搭建MongoDB,那么所有人都可以直接访问并修改数据库数据了。

    默认情况下,mongod也是没有管理员账户的。因此除非你在admin数据库中使用db.createUser()命令添加了管理员帐号,且使用–auth参数启动mongod,否则在数据库中任何人都可以无需认证执行所有命令。

    一、创建所有数据库管理员用户:

    1、管理员身份运行cmd.exe,先cd到Mongodb安装目录的bin目录,

    输入命令mongo.exe,进入mongodb命令界面:

    2、创建数据库test1

    插入一条数据,然后用命令:show dbs 才能看到

    可以看到test1。

    3、进入admin数据库:

    命令:use admin

    4、创建管理账号:

    首先看看mongodb内置角色:

        1. 数据库用户角色:read、readWrite;
        2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
        3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
        4. 备份恢复角色:backup、restore;
        5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
        6. 超级用户角色:root  
        7. 内部角色:__system

    使用命令:db.createUser({user:"testAdmin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

    5、重启mongodb服务,

    重新打开cmd,在mongodb路径的bin目录下,执行mongod --dbpath  d:mongodbdata  --auth   (data是安装mongodb创建的数据库文件夹)

    1,以 --auth 的启动方式,标识权限方式启动服务,必须先设置账号和密码;且访问该服务必须先验证,账号是什么权限就只能使用什么权限;

    2,也可以不加--auth,不使用权限直接启动,这样可以便于直接使用和测试;

    6、验证用户添加是否成功:

    结果为1,说明成功。

    7、使用Robomongo工具连接:

    可以看到刚才创建的管理员用户testAdmin(角色userAdminAnyDatabase),有权限访问所有数据库。

    二、下面对单个数据库设置用户、密码

     同上创建test1的方式,创建数据库test2

    运行命令: db.createUser({user:'test2admin',pwd:'123456',roles:[{role:'readWrite',db:'test2'}]})

    使用Robomongo工具连接:

    用户test2admin只能看到数据库test2。

  • 相关阅读:
    POJ 2175 Evacuation Plan 费用流 负圈定理
    POJ 2983 Is the Information Reliable? 差分约束
    codeforces 420B Online Meeting
    POJ 3181 Dollar Dayz DP
    POJ Ant Counting DP
    POJ 1742 Coins DP 01背包
    中国儒学史
    产品思维30讲
    Java多线程编程核心技术
    编写高质量代码:改善Java程序的151个建议
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/11203353.html
Copyright © 2011-2022 走看看