欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

mongo在哪创建管理员_MongoDB添加用户

发布时间:2024/4/17 编程问答 62 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mongo在哪创建管理员_MongoDB添加用户 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问。 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。 用户应该只有最小权限集才能确保最小权限的系统。

MongoDB系统的每个应用程序和用户都应该映射到不同的用户。 这种访问隔离便于访问撤销和持续的用户维护。

前提条件

如果启用了部署的访问控制,则可以使用localhost异常来创建系统中的第一个用户。 此第一个用户必须具有创建其他用户的权限。 对于MongoDB 3.0,使用localhost异常只能在admin数据库上创建用户。 创建第一个用户后,必须使用该用户进行身份验证以添加后续用户。 启用Auth提供有关在启用部署访问控制时添加用户的更多详细信息。

对于常规用户创建,必须拥有以下权限:

要在数据库中创建新用户,必须在该数据库资源上具有createUser操作。

要向用户授予角色,必须对角色的数据库执行grantRole操作。

userAdmin和userAdminAnyDatabase内置角色在其各自的资源上提供createUser和grantRole操作。

例子

要在MongoDB部署中创建用户,请连接到部署,然后使用db.createUser()方法或createUser命令添加用户。

MongoDB是一个nosql数据库服务器。 默认安装提供使用mongo命令通过命令行访问数据库而不进行身份验证。下面我们来学习如何在具有适当身份验证的Mongodb服务器中创建用户。

创建管理员用户

可以使用以下命令在MongoDB服务器中创建具有管理员权限的用户。

$ mongo

> use admin

> db.createUser(

{

user:"maxsu",

pwd:"pwd123",

roles:[{role:"root",db:"admin"}]

}

)

> exit

现在尝试通过命令行使用上述用户凭据登录 -

D:\Program Files\MongoDB\Server\3.4\bin>mongo -u maxsu -p --authenticationDatabase admin

MongoDB shell version v3.4.5

Enter password:

connecting to: mongodb://127.0.0.1:27017

MongoDB server version: 3.4.5

Server has startup warnings:

2017-07-05T21:16:55.901+0800 I CONTROL [initandlisten]

2017-07-05T21:16:55.902+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.

2017-07-05T21:16:55.905+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.

2017-07-05T21:16:55.908+0800 I CONTROL [initandlisten]

>

添加数据库用户

您还可以创建指定数据库的用户,该用户只能访问该数据库。也可以为此数据库上的用户指定访问级别。 例如,创建一个在mydb数据库上具有读写访问权限的用户帐户。

> use mydb

> db.createUser(

{

user: "user01",

pwd: "pwd123",

roles: ["readWrite"]

}

)

> exit

验证身份验证使用以下命令。 返回结果为1,表示认证成功。

> db.auth('user01','pwd123')

1

>

要列出数据库的所有用户,请使用以下命令。

> db.getUsers()

上面语句,返回结果如下所示 -

> db.getUsers()

[

{

"_id" : "mydb.user01",

"user" : "user01",

"db" : "mydb",

"roles" : [

{

"role" : "readWrite",

"db" : "mydb"

}

]

},

{

"_id" : "mydb.user02",

"user" : "user02",

"db" : "mydb",

"roles" : [

{

"role" : "readWrite",

"db" : "mydb"

}

]

}

]

>

删除数据库用户

也可以使用以下命令从数据库中删除用户。

> use mydb

> db.dropUser('user02')

创建带角色的用户

以下操作在test数据库中创建用户:mynewuser,并向用户提供readWrite和dbAdmin角色。

use test

db.createUser(

{

user: "mynewuser",

pwd: "myuser123",

roles: [ "readWrite", "dbAdmin" ]

}

);

创建没有角色的用户

以下操作在test数据库中创建一个名为mynewuser1的用户,但尚未分配角色:

use test

db.createUser(

{

user: "mynewuser1",

pwd: "myuser1123",

roles: [ ]

}

);

创建具有角色的管理用户

以下操作在管理数据库中创建一个名为 myadmin1 的用户,并给予用户对config数据库的 readWrite 访问权限,这样可以让用户更改分片分区的某些设置,例如平衡器设置。

use admin

db.createUser(

{

user: "myadmin1",

pwd: "myadmin123",

roles:

[

{ role: "readWrite", db: "config" },

"clusterAdmin"

]

}

);

总结

以上是生活随笔为你收集整理的mongo在哪创建管理员_MongoDB添加用户的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。