-
创建用户管理员
在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.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/