1. 程式人生 > >MongoDB新增認證

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.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/