zoukankan      html  css  js  c++  java
  • MongoDB基础之七 用户管理

    MongoDB的用户管理
     

    注意:
    A)在mongodb中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据.
    即 use admin , -->相当于进入超级用户管理模式.

    B)mongo的用户是以数据库为单位来建立的, 每个数据库有自己的管理员.

    C) 我们在设置用户时,需要先在admin数据库下建立管理员---这个管理员登陆后,相当于超级管理员.

    添加用户

    命令:db.addUser();
    简单参数: db.addUser(用户名,密码,是否只读)

    例:  

     1 > use admin
     2 > db.addUser('user','passwd',false) ; -- false 表示可读写
     3 
     4 > use admin
     5 switched to db admin
     6 > 
     7 > 
     8 > show tables    -- 默认
     9 > 
    10 > 
    11 > db.addUser('sa','admin',false);
    12 {
    13 "user" : "sa",
    14 "readOnly" : false,
    15 "pwd" : "b61d1ef5ad1acf7012b6010b95eb701e",
    16 "_id" : ObjectId("5743f55eaddef29711337fbf")
    17 }

    注意: 添加用户后,我们再次退出并登陆,发现依然可以直接读数据库?
    原因: mongodb服务器启动时, 默认不是需要认证的.
    要让用户生效, 需要启动服务器时,就指定 --auth 选项.
    这样, 操作时,就需要认证了.

    --带密码验证方式启动 mongodb

     1 [root@localhost mongodb]# ./bin/mongod --dbpath /home/mdata/ --logpath /home/mlog/mlog.log --fork --auth 
     2 about to fork child process, waiting until server is ready for connections.
     3 forked process: 16078
     4 all output going to: /home/mlog/mlog.log
     5 log file [/home/mlog/mlog.log] exists; copied to temporary file [/home/mlog/mlog.log.2016-05-24T06-34-57]
     6 
     7 
     8 child process started successfully, parent exiting
     9 
    10 [root@localhost mongodb]# ./bin/mongo 
    11 MongoDB shell version: 2.4.9
    12 connecting to: test
    13 > 
    14 > 
    15 > show dbs;
    16 Tue May 24 14:35:20.442 listDatabases failed:{ "ok" : 0, 
    17 "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:46
    18 
    19 --一定要先切换到admin库
    20 > use admin
    21 switched to db admin
    22 > 
    23 > 
    24 > db.auth('sa','admin');
    25 1
    26 > show dbs
    27 admin 0.203125GB
    28 local 0.078125GB
    29 test 0.203125GB
    30 >

     修改用户密码

    1 > use test
    2 > db.changeUserPassword('testUser','1234');
    3 >

    删除用户

    > use test
    > db.removeUser('testUser');

    注: 如果需要给用户添加更多的权限,可以用json结构来传递用户参数
    例:

    > use test
    >db.addUser({user:'user',pwd:'passwd',roles:['readWrite,dbAdmin']});




  • 相关阅读:
    在小气的神的Blog上看到的一段Video
    一个在.net下进行用户模拟的类
    PDC每日视频
    今天才知有一个CollectionBase类,惭愧
    “EditandContinue”特性
    Codeforces Round #597 (Div. 2) A. Good ol' Numbers Coloring
    单据号生成
    JAR包
    框架之间传值
    Eclipse3.4发布 新特性展示
  • 原文地址:https://www.cnblogs.com/chinesern/p/5523526.html
Copyright © 2011-2022 走看看