如何使用用户名和密码设置 MongoDB
How to setup MongoDB with username and password
我正在 ubuntu 18.04
中设置 mongo db
。我已经使用他们 page 上给出的命令安装了它。安装后,我已经下载 NoSqlBooster
并使用本地主机连接到 Mongo 服务器。
我创建了一个名为RIPE
的数据库,并且还添加了一些集合和测试文档。此时,我还为 RIPE
创建了一些读取用户,以便我可以与同事共享读取用户凭据以供他们使用。我不希望他们进行更改,所以只想给他们读取权限。下面是截图
我的第一个问题是,我在 RIPE
数据库中添加了 ttread
用户,我们可以在上图中看到它,但为什么它也显示在 RIPE
数据库之外?
我的第二个问题是,如何让用户直接连接到 RIPE
数据库。在 nosqlbooster 中,当我连接到本地主机时,我提到 AuthDB
为 RIPE
,如下所示:
并且当它连接时,它还会显示其他数据库,例如 admin
、config
、local
。
最后一个问题,在设置 mongodb 时如何添加用户名和密码,因为任何用户都可以在没有用户名和密码的情况下连接到本地主机。那么设置安全性的最佳方法是什么。
谢谢
为了启用身份验证,请执行以下步骤:
更改您的配置文件并启用身份验证:
security:
authorization: enabled
重新启动您的 MongoDB,通常 systemctl restart mongod
创建用户管理员
db.getSiblingDB("admin").createUser({
user: "root",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
除非创建了用户管理员,否则您仍然可以在没有 username/password 的情况下连接到您的 MongoDB,此行为称为 Localhost Exception
就我个人而言,除了 admin
,我认为没有任何理由在其他数据库中创建用户,请参阅 。
我会这样创建用户:
db.getSiblingDB("admin").runCommand( {
createUser: "ttread",
pwd: passwordPrompt(),
roles: [ { role: "read", db: "RIPE " } ]
} )
我正在 ubuntu 18.04
中设置 mongo db
。我已经使用他们 page 上给出的命令安装了它。安装后,我已经下载 NoSqlBooster
并使用本地主机连接到 Mongo 服务器。
我创建了一个名为RIPE
的数据库,并且还添加了一些集合和测试文档。此时,我还为 RIPE
创建了一些读取用户,以便我可以与同事共享读取用户凭据以供他们使用。我不希望他们进行更改,所以只想给他们读取权限。下面是截图
我的第一个问题是,我在 RIPE
数据库中添加了 ttread
用户,我们可以在上图中看到它,但为什么它也显示在 RIPE
数据库之外?
我的第二个问题是,如何让用户直接连接到 RIPE
数据库。在 nosqlbooster 中,当我连接到本地主机时,我提到 AuthDB
为 RIPE
,如下所示:
并且当它连接时,它还会显示其他数据库,例如 admin
、config
、local
。
最后一个问题,在设置 mongodb 时如何添加用户名和密码,因为任何用户都可以在没有用户名和密码的情况下连接到本地主机。那么设置安全性的最佳方法是什么。
谢谢
为了启用身份验证,请执行以下步骤:
更改您的配置文件并启用身份验证:
security: authorization: enabled
重新启动您的 MongoDB,通常
systemctl restart mongod
创建用户管理员
db.getSiblingDB("admin").createUser({ user: "root", pwd: passwordPrompt(), // or cleartext password roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
除非创建了用户管理员,否则您仍然可以在没有 username/password 的情况下连接到您的 MongoDB,此行为称为 Localhost Exception
就我个人而言,除了 admin
,我认为没有任何理由在其他数据库中创建用户,请参阅
我会这样创建用户:
db.getSiblingDB("admin").runCommand( {
createUser: "ttread",
pwd: passwordPrompt(),
roles: [ { role: "read", db: "RIPE " } ]
} )