Cam*_*lva 149
默认情况下,mongodb没有启用访问控制,因此没有默认用户或密码.
要启用访问控制,请使用命令行选项--auth或security.authorization配置文件设置.
您可以使用以下过程或参考MongoDB文档中的启用身份验证.
无需访问控制即可启动MongoDB.
mongod --port 27017 --dbpath /data/db1
Run Code Online (Sandbox Code Playgroud)连接到实例.
mongo --port 27017
Run Code Online (Sandbox Code Playgroud)创建用户管理员.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Run Code Online (Sandbox Code Playgroud)使用访问控制重新启动MongoDB实例.
mongod --auth --port 27017 --dbpath /data/db1
Run Code Online (Sandbox Code Playgroud)以用户管理员身份进行身份验证
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
Run Code Online (Sandbox Code Playgroud)Raz*_*tru 10
除了@Camilo席尔瓦已经提到的内容之外,如果您想免费访问创建数据库,读取,写入数据库等,但您不想创建根角色,则可以使用以下内容更改第3步:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
}
)
Run Code Online (Sandbox Code Playgroud)
对于 2.6 之前的 MongoDB,添加 root 用户的命令是addUser(eg)
db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
Run Code Online (Sandbox Code Playgroud)
除了之前提供的答案之外,如果您的数据库已经使用访问控制(--auth开关)启动,则一个选择是遵循“本地主机异常”方法来创建第一个用户。为此,您需要具有对服务器的本地主机访问权限,然后运行:
mongo
use admin
db.createUser(
{
user: "user_name",
pwd: "user_pass",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
})
Run Code Online (Sandbox Code Playgroud)
正如 MongoDB 文档中所述:
本地主机例外允许您启用访问控制,然后在系统中创建第一个用户。对于 localhost 例外,启用访问控制后,连接到 localhost 界面并在管理数据库中创建第一个用户。第一个用户必须具有创建其他用户的权限,例如具有 userAdmin 或 userAdminAnyDatabase 角色的用户。使用 localhost 异常的连接只能访问在管理数据库上创建第一个用户。
这是文档该部分的链接。
| 归档时间: |
|
| 查看次数: |
141617 次 |
| 最近记录: |