gpt4 book ai didi

MongoDB快速入门笔记(七)MongoDB的用户管理操作

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章MongoDB快速入门笔记(七)MongoDB的用户管理操作由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

MongoDB 简介 。

MongoDB快速入门笔记(七)MongoDB的用户管理操作

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案.

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.

1、修改启动MongoDB时要求用户验证 。

加参数 --auth 即可.

现在我们把MongoDB服务删除,再重新添加服务 。

  。

复制代码 代码如下:

mongod --dbpath "D:\work\MongoDB\data" --logpath "D:\work\MongoDB\log\mongodb.log" --install --serviceName "MongoDB" --auth

  。

2、创建用户,并使用创建的用户登录 。

打开shell操作界面,默认test数据,再查看所有数据库,发现报错,因为没有用户验证.

使用db.auth("user","pwd")进行用户验证.

user:用户名 。

pwd:密码 。

因为数据库中没有用户,所以需要先使用无用户验证的方式启动数据,在admin数据库下新建用户.

  。

复制代码 代码如下:

db.createUser({user:"", pwd:"", roles:[{role:"", db:""}]})

  。

在当前数据库下创建一个用户 。

user:用户名 。

pwd:密码 。

roles:角色信息 。

[role:角色名, db:对指定数据库的操作] 。

?
1
2
3
4
5
6
7
8
9
10
> db.createUser({ user : "admin" , pwd: "admin" , roles:[{role: "userAdminAnyDatabase" , db: "admin" }]})
Successfully added user : {
"user" : "admin" ,
"roles" : [
{
"role" : "userAdminAnyDatabase" ,
"db" : "admin"
}
]
}

在使用用户验证的方式启动数据库,在数据库admin中,使用admin登录 。

> db.auth("admin","admin") 。

1 。

状态1表示验证成功,0表示验证失败 。

创建用户默认给当前使用的数据下创建用户, 。

例如:当前使用的数据是admin,在admin数据下新建用户 。

  。

复制代码 代码如下:

db.createUser({user:"zyh", pwd:"zyh", roles:[{role:"readWrite", db:"zyhdb"}]})

  。

在admin数据库下使用zyh登录,可读写zyhdb的collection.

当在zyhdb下,无法使用zyh登录,因为用户zyh是在admin数据库下.

3、查看当前数据下的用户 。

show users 显示当前数据库下所有的用户 。

使用有用户管理权限的用户登录才能看见,例如使用zyh登录后,执行会报错;使用admin登录后,显示用户 。

  。

复制代码 代码如下:

> db.auth("zyh","zyh")
1
> show users
2016-06-01T20:32:30.639+0800 E QUERY [thread1] Error: not authorized on admin to execute command { usersInfo: 1.0 } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1523:1
shellHelper.show@src/mongo/shell/utils.js:743:9
shellHelper@src/mongo/shell/utils.js:650:15
@(shellhelp2):1:1
> db.auth("admin","admin")
1
> show users
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
{
"_id" : "admin.zyh",
"user" : "zyh",
"db" : "admin",
"roles" : [
{
"role" : "readWrite",
"db" : "zyhdb"
}
]
}

  。

还可以使用db.getUsers()查看所有的用户 。

使用db.getUser("user")查询指定用户的具体信息 。

4、修改用户信息 。

  。

复制代码 代码如下:

db.changeUserPassword("user", "newpwd"),修改密码

  。

user:用户名 。

newpwd:新的密码 。

?
1
db.updateUser("user", {roles:[{role:"", db:""}]})

修改用户信息 。

  。

复制代码 代码如下:

db.grantRolesToUser("user", [{role:"", db:""}])

  。

追加角色 。

  。

复制代码 代码如下:

db.revokeRolesFromUser("user", [{role:"", db:""}])

  。

取消角色 。

5、删除用户 。

db.dropUser("user") 删除指定用户 db.dropAllUsers() 删除当前数据下所有用户 。

附:常用内置角色说明 。

数据库用户角色(每个数据库都有的角色) 。

read 对non-system集合的读取权限,以及以下system集合的读取权限:system.indexes,system.js,system.namespaces readWrite 对non-system集合的读写权限,以及system.js上的读写权限 。

数据库管理角色(每个数据库都包含的数据管理角色) dbAdmin 完成管理性任务的权限,比如schema相关任务、索引、统计信息收集。不能用于管理用户和角色 dbOwner 管理数据库需要的所有权限。包含(readWrite、dbAdmin、userAdmin角色的权限) userAdmin 在当前数据库创建和修改角色和用户的权限 。

集群管理角色 。

admin数据库包含以下角色用于管理整个系统,而不是只针对单个数据库 clusterAmin 提供集群管理的最大权限。包含了clusterManager、clusterMonitor、hostManager角色的权限 clusterManager 管理和监控集群,可以访问local和config数据库。 clusterMonitor 对集群的读权限 hostManager 管理和健康servers 。

备份和还原角色 。

admin数据库包含以下角色用于备份和还原数据 backup 备份权限 restore 还原权限 。

all-database roles admin数据提供以下角色,对所有数据库都有效。 readAnyDatabase 提供对所有数据库的读权限 readWriteAnyDatabase 提供对所有数据库的写权限 userAdminAnyDatabase 提供对所有数据库用户的管理权限 dbAdminAnyDatabase 对所有数据库的dbAdmin权限 。

超级角色 。

角色 说明 root 拥有最高权限 另外角色也可以自定义设置 。

以上内容是小编给大家介绍的MongoDB快速入门笔记(七)MongoDB的用户管理操作的相关知识,希望对大家有所帮助! 。

最后此篇关于MongoDB快速入门笔记(七)MongoDB的用户管理操作的文章就讲到这里了,如果你想了解更多关于MongoDB快速入门笔记(七)MongoDB的用户管理操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com