首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么db.auth()只有在选择了特定的数据库之后才能工作?

db.auth()是MongoDB数据库中的一个方法,用于进行身份验证。它只能在选择了特定的数据库之后才能工作,原因如下:

  1. MongoDB是一个面向文档的数据库管理系统,支持多个数据库的同时存在。在连接MongoDB服务器后,需要选择要操作的数据库,才能执行相关的操作。
  2. db.auth()方法需要在已选择的数据库上进行身份验证。这是因为MongoDB可以为每个数据库设置不同的用户和权限,以实现对不同数据库的访问控制。
  3. 在选择数据库之前,MongoDB客户端处于未认证状态,无法执行需要身份验证的操作。只有在选择了特定的数据库后,客户端才能通过db.auth()方法提供正确的用户名和密码进行身份验证。
  4. 这种设计可以提高安全性,确保只有经过身份验证的用户才能访问特定的数据库,避免未经授权的访问和潜在的安全风险。

推荐的腾讯云相关产品:腾讯云数据库MongoDB(TencentDB for MongoDB)

产品介绍链接地址:https://cloud.tencent.com/product/mongodb

相关搜索:为什么vscode IntelliSense只有在键入.default之后才能工作?如何启动HAL服务,只有在特定的android HAL服务之后才能启动只有在“if”块的正文之前添加了echo语句之后,Shell脚本才能工作只有在触摸Docker容器内部的ui.R之后,闪亮的应用才能工作为什么在react js应用程序中,this.setState只有在两个提交事件之后才能工作?简单的例子只有在第一次才能正确工作,为什么?JSON只有在逐字复制代码的情况下才能工作,生成的代码不能工作,为什么?为什么我的C# Xml代码只有在枚举变量enumerable时才能工作为什么我的复选框不工作?即使在设置了setState之后只有在我选择了range之后,才能在range滑块观察器中执行代码,而不是在我滑动滑块时不断地执行?为什么我的方法在我验证了它是在junit中被调用之后还能继续工作?android firebase动态链接只有在应用程序安装得更早的情况下才能工作,为什么?为什么这个Google应用程序脚本只有在我硬编码范围的情况下才能工作?为什么超集警报邮件不工作,即使在设置了所有所需的配置之后?Python:为什么我在selenium上的脚本只有在打开特定的chrome选项卡时才能运行在我的面包屑中只有一个之前/之后的伪选择器后面显示了奇怪的人工效果我怎么才能找出为什么Rails应用程序在Heroku上对单个特定的URL抛出错误,而它在本地工作得很好?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MongoDB学习笔记-3、MongoDB权限介绍

,可以指定数据库里创建、删除和管理用户 dbAdmin 允许用户指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile clusterAdmin 必须在admin数据库中定义...管理员通常没有数据库读写权限,只有操作用户权限,我们只需要赋予管理员userAdminAnyDatabase角色即可。另外管理员账号必须在admin数据库下创建。...1.3.1、管理员登录数据库 #切换到admin数据库 use admin #身份认证 db.auth("pbinlog","pbinlog") 1.3.2、创建数据库 MongoDB没有特定创建数据库语法...,使用use切换数据库时,如果对应数据库不存在则直接创建并切换。...删除用户时需要切换到该用户所在数据库。 【注意】:需要使用具有userAdmin或userAdminAnyDatabase或root角色用户才能执行。

57720

mongo身份验证和授权

Mongo中用户信息system.users集合中,改集合存在于管理数据库中(我这里是admin),它存储用户id,密码和创建该集合所面向数据库以及对用户授权权限。 ?...: "admin" } ]表明了tuhooo在这个用户可以有不同数据库不同权限(这里只有一个库,因为我还没来得及建测试库)。...一个用户可以不同数据库中具有不同授权级别的多个角色。 ? Mongo中角色 Mongo中可用角色有以下: read 提供对指定数据库所有集合只读访问。...上图是我登陆过程,刚用mongo连接进去了,然后直接: db.auth("tuhooo", "123456") 居然给我报错,只有切换到admin库,然后在这个库下面才能做登陆。...myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) // 登陆, 只有登陆后才能进行其他操作

1.5K30
  • Python爬虫之mongodb权限管理

    为什么要进行权限管理设置 刚安装完毕mongodb默认不使用权限认证方式启动,与MySQL不同,mongodb安装时候并没有设置权限,然而公网运行系统需要设置权限以保证数据安全,所以我们要学习mongodb...mongodb数据库 sudo mongod --auth 启动之后启动信息中会有如下信息,说明mongodb以权限认证方式启动成功 [initandlisten] options: { security...: { authorization: "enabled" } } 3.3 登录验证 此时再使用数据库各命令时候会报权限错误,需要认证才能执行相应操作、 use admin db.auth('python...创建普通用户 4.1 使用数据库上创建普通用户 1.选择需要创建用户数据库 use test1 创建用户 db.createUser("user":"user1", "pwd":"pwd1", roles..."]) 创建普通用户user1,该用户test1上权限是读写 4.2 admin用户数据库上创建普通用户 use admin db.createUser({"user":"python1", "pwd

    76910

    MongoDB-通过docker搭建一个用来练习mongodb数据库

    为什么突然间要写搭建MonoDB教程呢,因为公司有需要用到呀。...目前所在公司,有部分数据是存储MongoDB中,而且目前今后工作可能会偏向于验证数据,因此需要掌握对这个数据库一些基本用法,怕有些操作到时候不敢直接在公司数据库上进行操作,先在自己服务器上学习一下基本用法...老套路,这里推荐使用docker方式来搭建这样一个数据库,具体操作如下: 1、下载最新镜像: docker pull mongo:latest ?...外部可以直接通过 宿主机 ip:12345访问到 mongo 服务。 --auth:需要密码才能访问容器服务,启动容器后进入容器为用户设置密码 ?...> db.auth('admin', '123456') ? 4、通过navicat工具(非开源)连接mongodb数据库 ?

    1.2K10

    数据库MongoDB-用户使用

    管理员通常没有数据库读写权限,只有操作用户权限, 因此我们只需要赋予管理员userAdminAnyDatabase角色即可。 另外管理员账户必须在admin数据库下创建。...关闭MongoDB 管理员账户创建完成后,我们需要重新启动MongoDB,并开启验证。 重新启动函数:db.shutdownServer()。必须在./mongodb客户端命令行中才能输入 ?...默认情况下MongoDB是不开启用户认证。如果我们添加用户,那么需要开启用户认证机制。通过修改mongodb.conf配置文件,文件中添加auth=true即可。 ?.../mongo 使用admin数据库 # use admin 登录 # db.auth("bjsxt","bjsxtpwd") 切换到sxt数据库下。.../mongo 使用admin数据库 use admin 登录 # db.auth("bjsxt","bjsxtpwd") 切换 # use sxt 新增数据。其中sxt为collection名。

    82320

    MongoDB初了解——用户权限

    因为目前有一个试验性项目想要使用NoSQL,而MongoDB在工作中有一定接触,所以这个项目打算使用MongoDB,而在真正从下载到安装到使用时候发现不少知识点,以此作为记录。   ...,结果是说MongoDB默认是可以不通过权限操作,结果我自定义配置mongod.conf中配置auth=true,也就是说我自己配置需要权限操作。   ...创建好超级用户后,此时还不能执行show dbs命令,还需要做一次权限认证db.auth('root','root'),返回1表示认证成功,此时再输入show dbs会回显以下: admin 0.000GB...输入use admin,进入admin数据库,root用户需要在admin数据库中认证。   2. 输入db.auth('root','root')超级用户进行认证   3....这才是创建一个数据库,并插入一条数据库正确姿势,并且一定记住几点: 数据库和用户是绑定,光创建一个超级用户并不能操作在其他新建数据库中插入数据 切换数据库时,先切换认证用户,不然会出现too

    1.1K30

    MongoDB用户和角色解释系列(上)

    1、介绍 本文讨论保护MongoDB数据库所需访问控制。具体来说,我们可以使用这些特性来确保只有经过授权用户才能访问数据库。...MongoDB中,只有一个节点能够执行写操作。当此节点关闭或网络部分开始工作时,其余节点开始进行一次选择,以便选择主节点并使服务不停止情况下运行。...这个localhost异常只适用于仍然没有创建用户情况。您必须在两个选项中进行选择启用访问控制之前创建第一个用户,或者启用访问控制之后使用localhost异常创建第一个用户。...让我们来看看: 2.6.1 在数据库内部 $ mongo > use '' > db.auth('','') 我不建议您使用此方法,因为您键入密码时密码是可见...目前,他工作角色是MongoDB数据库工程师。在此之前,多家金融公司做了20年开发。他喜欢与皇马马克杯合作,也喜欢与技术社区交流。

    1.5K20

    CentOS7.6安装 MongoDB

    3.操作mongo数据库 任意目录下,输入命令mongo即可进入数据库,配置环境变量前提下,否则需要在mongodb安装目录下bin目录下使用....注意:如果一个数据库是没有安全认证,不使用用户名密码即可登陆,这样是不安全,所以我们应当授予权限才能操作数据库,这样再企业中才能保证数据安全性。...MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集元数据,admin数据库则主要存储MongoDB用户、角色等信息。.../mongod --config /usr/local/mongodb/etc/mongodb.conf show dbs此时看不到任何数据库,说明我们安全认证用户配置生效。...首先使用use admin通过db.auth(‘root’,‘密码’) 输出1就是验证成功。 use admin db.auth('root','123456')

    1K30

    MongoDB基础

    MongoDB基础 一、数据库概述及环境搭建 1、为什么要使用数据库 动态网站中数据都是存储在数据库 数据库可以用来持久存储客户端通过表单收集用户信息 数据库软件本身可以对数据进行高效管理 2...、什么是数据库 数据库即存储数据仓库,可以将数据进行有序分门别类存储。...高负载情况下,添加更多节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展高性能数据存储解决方案。...--auth 3、登录:注意使用双引号而非单引号 mongo --port 27017 -u "root" -p "123" --authenticationDatabase "admin" 也可以登录之后用...3、启动之后需要时运行new Mongo(hostname)命令就可以连接到想要mongod: > conn=new Mongo('127.0.0.1:27017') connection

    55720

    Mongodb(一)

    因为MongoDB中文档结构可以不同,随意对文档结构进行扩展,不像MySQL中每个字段都是固定好,你需要往里填数据。 4.为什么要使用NoSQL?...use dbname db.auth(user,pwd) 删除某一用户及权限: db.dropUser(用户名) 该用户所在数据库下执行删除命令。...2.使用use之后并没有创建数据库。 3.数据库是在手动创建集合或者使用集合时候创建。 删除当前数据库: db.dropDatabase() 使用该命令时必须已经选择了当前要删除数据库。...2.5.2集合相关操作 查看当前数据库集合列表(选择数据库之后使用): show collections 创建集合: db.createCollection(name) 删除集合: db.collection.drop...4.MongoDB索引 4.1面试题 索引原理? 答: 二叉树/B+树/红黑树。 4.2 索引 索引可以提升查询速度,提升数据库查询性能,但是牺牲数据库插入和更新速度。

    2.2K20

    MongoDB运维与开发(三)

    慢慢来看 NO.1 MongoDB用户初始化 我们第一次启动MongoDB时候,仅仅是制定data数据目录和log日志目录,并没有指定--auth选项,也就是并不需要认证。...readAnyDatabase: 只admin数据库中可用,赋予用户所有数据库读权限 readWriteAnyDatabase: 只admin数据库中可用,赋予用户所有数据库读写权限...userAdminAnyDatabase: 只admin数据库中可用,赋予用户所有数据库userAdmin权限 dbAdminAnyDatabase: 只admin数据库中可用,赋予用户所有数据库...超级账号,超级权限 更详细内容,请参看官方文档: https://docs.mongodb.com/manual/reference/built-in-roles/#dbAdmin 好了,创建好用户之后...") 这下可以

    1.8K10

    Linux安装 mongodb

    1.打开mongodb官网 https://www.mongodb.com/ 选择社区版本 选择对应操作系统 packages选择TGZ,复制下载地址 cd /usr/local/src.../mongo 连接成功 由上图可见,我们直接使用命令进入了mongodb,为了安全起见我们还可以设置用户登录 方法如下: 1.服务器开启情况下。...如下创建一个test用户 该用户角色为read只能读取local数据库 更多角色配置参照这里 使用用户登录 重新启动mongodb 下次启动选项加上 --auth,这样客户端才能进行用户登录.../mongod --dbpath=/data/ --logpath=/data/mongo.log/ --port=27017 --fork --auth 连接数据库 虽然我们设置用户登录,但是使用命令还是可以进入...可是当我们使用某个数据库时 报错 这里,用户管理就起到作用了,因为在这之前我们没有进行任何用户登录 use admin db.auth(用户名,密码) 登录成功 正常访问 并且该用户只能在自己数据库进行操作

    2.3K10

    零基础学习MongoDB (三)—— 管理用户

    b站上听了几个老师课,有涉及到mongodb一些历史,比如删库勒索,因此开放数据库是很危险,所以我们需要给它们添加管理用户,这样为我们数据安全加一道墙 一、管理员类型 mongodb提供很多了角色...通过验证登录 当我们成功开启安全认证后,命令行直接输入mongo,看到东西会只有一点,相对于之前少了很多 ?...同时当输入show dbs查看数据库时,会发现没有数据库,这时候我们需要登录我们先前注册账号,采用命令,填写内容分别是账号和密码,成功登录会返回1,否则返回0 db.auth("admin","123456...") 这时候我们再查看数据库,就可以看到内容, ?...test数据库管理员 db.createUser({user:"test",pwd:"123456",roles:[{role: "dbOwner", db: "test" }]}) 登录时,我们需要切换到对应

    26120

    mongodb基础应用

    超级用户角色:root // 这里还有几个角色间接或直接提供系统超级用户访问(dbOwner 、userAdmin、userAdminAnyDatabase) 7....readAnyDatabase:只admin数据库中可用,赋予用户所有数据库读权限 readWriteAnyDatabase:只admin数据库中可用,赋予用户所有数据库读写权限 userAdminAnyDatabase...:只admin数据库中可用,赋予用户所有数据库userAdmin权限 dbAdminAnyDatabase:只admin数据库中可用,赋予用户所有数据库dbAdmin权限。...root:只admin数据库中可用。超级账号,超级权限 查看所有帐号 db.system.users.find().pretty() 如果修改了用户权限,则需要在用户所在数据库再次认证才能生效。...注: MongoDB 中,默认数据库是 test,如果你没有创建任何数据库,那么集合就会保存在 test 数据库中。 4.

    73960

    mongodb用户管理

    安装MongoDB之后,先关闭auth认证,启动服务端: 现在需要创建一个帐号,该账号需要有grant权限,即:账号管理授权权限。...超级用户角色:root // 这里还有几个角色间接或直接提供系统超级用户访问(dbOwner 、userAdmin、userAdminAnyDatabase) 7....readAnyDatabase:只admin数据库中可用,赋予用户所有数据库读权限 readWriteAnyDatabase:只admin数据库中可用,赋予用户所有数据库读写权限 userAdminAnyDatabase...:只admin数据库中可用,赋予用户所有数据库userAdmin权限 dbAdminAnyDatabase:只admin数据库中可用,赋予用户所有数据库dbAdmin权限。...2.开启auth参数,认证通过后才能访问数据库 3.数据库创建用户 db.createUser( { user: "db", pwd: "jp_123", roles:

    80030

    【最佳实践】高可用mongodb集群(1分片+3副本):规划及部署

    适应数据规模为T级场景,由于设计分片支撑,后续如有大数据量需求,可分片横向扩展。...passwd mongod --stdin■ mongodb 下载、安装官方所有介质均从这个入口下载:https://www.mongodb.com/try/download#20230911 最新版本,选择合适平台介质...mongosh --port 27001使用admin数据库,定义副本集配置,"arbiterOnly":true 代表其为仲裁节点:use admin#模式选择 P/S/Sconfig = {_id:...,才能操作问题:如果只有一个分片,还需要设置吗?...mongodb官网声称,为了能保障mongodb安全可以做以下几个步骤:1、使用新端口,默认27017端口如果一旦知道ip就能连接上,不太安全2、设置mongodb网络环境,最好将mongodb

    1.9K121
    领券