MongoDB添加认证

  • 创建用户管理员

  在admin数据库中,添加具有该userAdminAnyDatabase角色的用户 。根据需要为此用户添加其他角色。

  注意:创建用户的数据库(在此示例中为 admin)是用户的身份验证数据库。虽然用户将对此数据库进行身份验证,但用户可以在其他数据库中拥有角色; 即用户的身份验证数据库不限制用户的权限

  以下内容使用角色和 角色myUserAdminadmin数据库中创建用户;创建用户的数据库(在此示例中为 admin)是用户的身份验证数据库

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

  

  停止MongoDB

service mongod stop

  

  • 修改配置文件

 在/etc/mongod.conf中添加:

security:
  authorization: enabled

  

  • 以用户管理员身份进行连接和身份验证

  验证方式:

  1. 通过传入用户凭据来连接身份验证
mongo命令使用:-u <username>-p <password>--authenticationDatabase <database>

  

  2.首先进行无需身份验证的连接,然后发出db.auth()要进行身份验证;

  切换到身份验证数据库(在本例中为admin),并使用 方法进行身份验证:db.auth(<username>,<pwd>)

use admin
db.auth("myUserAdmin", "abc123" )

  

  授权方式:

#更新角色:db.updateUser( "userName" , [ { role: "<role>", db: "<database>" } ]) 
db.updateUser( "myuser" , [ { role: "dbOwner", db: "mydb" } ])

#授予角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ]) db.grantRolesToUser( "myuser" , [ { role: "dbOwner", db: "mydb" } ]) #取消角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ]) db.revokeRolesFromUser( "myuser" , [ { role: "readWrite", db: "mydb" } ])

  

参考:https://docs.mongodb.com/manual/tutorial/enable-authentication/

原文地址:https://www.cnblogs.com/coder-zyc/p/9973985.html