欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mongodb权限管理

程序员文章站 2022-03-01 19:49:51
...

   

    在mongodb中,一般放在内网服务器上,并不需要开启权限认证,但是为了数据安全,有时候也可能用到,

这里记录下开启权限的一些关键点。

 

   1.创建一个admin账号,这一步是为了开启权限认证以后能够连上mongo,进行创建用户/分配角色等操作。

 

use admin;
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
);

 

 

    2.开启mongod服务权限认证

     最直接就在mongod加上启动参数: --auth;如果用的配置文件,就在yml中加上security.authorization这个配置项,value写enabled或者disabled,默认是disabled,然后重新启动mongo服务就可以了。

 

security: 
  authorization: enabled

 

 

    3.创建用户/分配角色

    首先使用admin连接mongo,然后创建用户。

 

use test;
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" } ]
  }
)

 

The database where you create the user (in this example, test) is that user’s 
authentication database. Although the user would authenticate to this database, 
the user can have roles in other databases; i.e. the user’s authentication database does 
not limit the user’s privileges.

   这里要说明一下:创建用户在哪个库都可以,并不会影响认证。也就是说在admin创建用户,然后分配了rw角色是test库的,一样是可以的,用来认证的库并不会影响用户的权限。

 

实操过程中,有几个点注意下:admin用户只能建在admin库下面,建在其他库提示角色不存在;在其他库创建用户,然后分配当前库的rw角色时,连上去看不到当前库,只能看到建用户的库,要创建一下才显示出来。