单实例_服务端开启&客户端登录验证|学习笔记

简介: 快速学习单实例_服务端开启&客户端登录验证

开发者学堂课程【MongoDB精讲课程(下)单实例_服务端开启&客户端登录验证】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/727/detail/12992


单实例_服务端开启&客户端登录验证


内容介绍:

一、添加用户和权限

二、服务端开启认证和客户端连接登录

 

一、添加用户和权限

回顾

//测试是否可用

> db.auth(‘’bobo’’,’’123456’’)

只增添了普通用户和管理员用户,并没有开启认证,效果为退出客户端后再登陆不需要输入用户名和密码也可以查看 dbs。

image.png

如果想要通过用户登录之后操作,比如设置安全认证,需要从服务端开启认证。开启认证后再链接登录则需要登录用户才能进行操作


二、服务端开启认证和客户端连接登录

1. 关闭已经启动的服务

(1)V使用 linux 命令杀死进程

[root@bobohost sing1e]# ps -ef lgrep mongo

Root   23482   1 0 08:08 ?   00:00:55 /usr/1ocal / mongodb/bin/mongod -f

/mongodb/singTe/mongod. Conf

[root@bobohost single]# ki17 -2 23482

杀掉当天进程后重启,直接启动是没有效果的,此时启动与之前搭建的环境相同,不需要登陆。有两种方式开启权限认证启动服务

(2)在 mongo 客户端中使用 shutdownServer 命令来关闭

> db . shutdownserver()

shutdown command only works with the admin database; try 'use admin'>use admin

switched to db admin> db. Shutdownserver()

2019-08-14T11:20:16.450+0800 E QUERY [js] Error: shutdownserver failed: {

"ok" : 0,

"errmsg" : "shutdown must run from loca7host when running db without auth","code" : 13,

"codeName" : "unauthorized"

} :

_getErrorwithcode@src/mongo/she11/uti1s.js:25:13DB.prototype.shutdownserver@src/mongo/she11/db.js:453:1a(she11):1:1

需要几个条件:

必须是在 admin 库下执行该关闭服务命令。

如果没有开启认证,必须是从 localhost 登陆的,才能执行关闭服务命令。

·非 localhost 的、通过远程登录的,必须有登录且必须登录用户有对 admin 操作权限才可以。 

2. 以开启认证的方式启动服务

有两种方式开启权限认证启动服务:一种是参数方式,一种是配置文件方式。

(1)参数方式

在启动时指定参数--auth,如:

/usr/loca1/mongodb/bin/mongod-f /mongodb/single/mongod.conf --auth

需要登陆用户才能进行操作。此方法简单但是每次启动都需要带上参数,如果忘记则任何一个知道你的IP地址和登陆号就可以直接登陆,不安全不严谨,所以开发中很少用. 

(2)配置文件方式

在 mongod.conf 配置文件中加入:

vim /mongodb/single/mongod.conf

security :

#开启授权认证

authorization: enab1ed

启动时可不加--auth 参数:

/usr/loca1/mongodb/bin/mongod -f /mongodb/single/mongod.conf

此时再登陆相当于服务端开启了认证,就不能随意操作。此时登陆的比赛可以连上但是什么也看不见。也可以切换admin账户,虽然显示切换到了admin账户,但是调用命令,展示集合,发现没有登陆什么也看不见。

3. 开启了认证的情况下的客户端登录

有两种认证方式,一种是先登录,在 mongo shell 中认证;一种是登录时直接认证。

(1)先连接再认证

[root@bobohost bin]# /usr/loca1/mongodb/bin/mongo --host 180.76.159.126 --port 27017MongoDB she17 version v4.0.10

connecting to: mongodb: //180.76.159.126:27017/?gssapiserviceName=mongodb

Implicit session: session { "id" : uUID("53fef661-35d6-4d29-b07c-020291d62e1a") }MongoDB server version : 4.0.10

提示:

开启认证后再登录,发现打印的日志比较少了。

相关操作需要认证才可以:

查询 admin 库中的 system.users 集合的用户:

> use admin

switched to db admin> db. system.users.findError: error: {

"ok" : 0,

"errmsg" : "command find requires authentication" ,

"code" : 13,

"codeName" : "unauthorized"

}

> db.auth( "myroot" , "123456")

1

> db.system.users.find()

此时登陆的是超管账户,可以看见所有的库,可以对每一个库进行操作。

登陆普通用户需要先退出切换到 aticledb 之后再连接。

查询 articledb 库中的 comment 集合的内容:

> use atic1edb

switched to db articledb>db . comment.find(

Error: error: {

"ok" : 0,

"errmsg" : "not authorized on articledb to execute command { find: \ "comment\",fi1ter: f,1sid: i id: uUID(\"53fef661-35d6-4d29-b07c-020291d62e1a\")},Sdb:

\ "articledb\" }",

此时只有 aticledb 的读写权限,与超级管理员用户不同,此时的操作权限只在aticledb,只能看到 aticledb 库。

相关文章
|
移动开发 Python
Python网络编程——HTTP请求报文
HTTP报文分为请求报文和响应报文。 常见的请求报文有两种GET方式和POST 方式。
22773 6
|
2天前
|
数据采集 人工智能 安全
|
12天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1025 151
|
3天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1722 9
|
8天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
665 152
|
10天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
632 15