好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

浅析MongoDB用户管理

1. 创建一个超级用户

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

use admin

db.createUser(

   {

     user : "adminUserName" ,

     pwd: "userPassword" ,

     roles:

     [

       {

         roles: "userAdminAnyDatabase" ,

         db: "admin"

       }

     ]

   }

)

超级用户的role有两种,userAdmin或者userAdminAnyDatabase(比前一种多加了对所有数据库的访问)。

db是指定数据库的名字,admin是管理数据库。

2. 用新创建的用户登录

?

1

mongo --host xxx -u adminUserName -p userPassword --authenticationDatabase admin

3. 查看当前用户的权限

?

1

2

3

4

5

6

db.runCommand(

   {

     usersInfo:"userName",

     showPrivileges:true

   }

)

4. 创建一般用户,也是用createUser

?

1

2

3

4

5

6

7

8

9

10

11

12

use db01

db.createUser(

   {

     user:"oneUser",

     pwd:"12345",

     roles:[

       {role:"read",db:"db01"},

       {role:"read",db:"db02"},

       {role:"read",db:"db03"}

     ]

   }

)

5. 创建一个不受访问限制的超级用户

?

1

2

3

4

5

6

7

8

use admin

db.createUser(

   {

     user:"superuser",

     pwd:"pwd",

     roles:["root"]

   }

)

6. 修改密码

?

1

2

use admin

db.changeUserPassword( "username" , "xxx" )

7. 查看用户信息

?

1

db.runCommand({usersInfo: "userName" })

8. 修改密码和用户信息

?

1

2

3

4

5

6

7

db.runCommand(

   {

     updateUser:"username",

     pwd:"xxx",

     customData:{title:"xxx"}

   }

)

注:

1. 和用户管理相关的操作基本都要在admin数据库下运行,要先use admin;

2. 如果在某个单一的数据库下,那只能对当前数据库的权限进行操作;

3. db.addUser是老版本的操作,现在版本也还能继续使用,创建出来的user是带有root role的超级管理员。

查看更多关于浅析MongoDB用户管理的详细内容...

  阅读:25次