在管理数据库中创建用户与在MongoDB中的其他数据库中创建用户



以下两个语句之间有什么区别

> use admin
switched to db admin
> db.createUser( 
...   { 
...     user: "user1", 
...     pwd: "1234", 
...     roles: [ { role: "readWrite", db: "test" } ] 
...   } 
... ) 
Successfully added user: {
"user" : "user1",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}

> use test
switched to db test
> db.createUser( 
...   { 
...     user: "user2", 
...     pwd: "1234", 
...     roles: [ { role: "readWrite", db: "test" } ] 
...   } 
... ) 
Successfully added user: {
"user" : "user2",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
  • 第一种情况我在";管理员";db表示";测试";数据库用";readWrite";角色
  • 第二种情况是"我在内部创建用户";测试";数据库对于";测试";db本身与";readWrite";角色

在这种情况下,两者是相同的还是在管理员内部创建的用户拥有更大的权力?

mongodb中的用户帐户由数据库和用户名标识。

admin.testusertest.testuser是两个不同的帐户,它们可以具有不同的密码和不同的分配角色。

当连接到mongodb时,命令行或连接字符串中提供的身份验证数据库必须与创建用户的数据库匹配。

admin以外的数据库中创建的用户帐户仅限于该数据库中的角色和权限。

考虑到您提到的两个帐户,您可以将readWriteAnyDatabase角色分配给admin.test用户,但不能将test.test用户。

最新更新