MongoDB新增認證
阿新 • • 發佈:2018-11-17
-
建立使用者管理員
在admin
資料庫中,新增具有該userAdminAnyDatabase
角色的使用者 。根據需要為此使用者新增其他角色。
注意:建立使用者的資料庫(在此示例中為 admin
)是使用者的身份驗證資料庫。雖然使用者將對此資料庫進行身份驗證,但使用者可以在其他資料庫中擁有角色; 即使用者的身份驗證資料庫不限制使用者的許可權。
以下內容使用角色和 角色myUserAdmin
在admin
資料庫中建立使用者;建立使用者的資料庫(在此示例中為 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
-
以使用者管理員身份進行連線和身份驗證
驗證方式:
- 通過傳入使用者憑據來連線身份驗證
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/