`
m635674608
  • 浏览: 5028728 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

mongoDB之用户及权限设置

 
阅读更多

之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB。在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问。想想很不对劲还是设置下用户授权吧。

  我部署的环境是windows下MongoDB2.4.8版本。首先要开启安全模式的话,在启动MongoDB服务的时候就要加上--auth参数,命令如下:

D:\mongodb>mongod.exe --dbpath D:\mongodb\data --logpath=D:\mongodb\logs\mongodb.log --auth

     这样的话再连接MongoDB操作的时候就需要一定的权限。

 一、首先我们需要在没有加"--auth"权限参数启动服务进行用户权限管理

  我们这样启动MongoDB服务:

D:\mongodb>mongod.exe --dbpath D:\mongodb\data --logpath=D:\mongodb\logs\mongodb.log

  这时不指定用户连接mongodb,是可以登录并操作的,我的操作如下:

复制代码
D:\>mongo
MongoDB shell version: 2.4.8
connecting to: test
> show dbs
admin   (empty)
local   0.078125GB
>
复制代码

  可以看到默认显示两个库,我们需要进入admin库进行权限设置(这个时候因为服务没有添加权限参数,所以默认是有权限进行相关设置的)

复制代码

> use admin
switched to db admin
> db.addUser('sa','sa')
{
"user" : "sa",
"readOnly" : false,
"pwd" : "75692b1d11c072c6c79332e248c4f699",
"_id" : ObjectId("53af835ada88ac42a40917a0")
}
> db.system.users.find()
{ "_id" : ObjectId("53af835ada88ac42a40917a0"), "user" : "sa", "readOnly" : false, "pwd" : "75692b1d11c072c6c79332e248c4f699" }

复制代码

二、我们关掉之前开启的服务,添加"--auth"权限参数,重新启动MongoDB服务

D:\>mongod --dbpath D:\mongodb\data --logpath=D:\mongodb\logs\mongodb.log --auth

我们再次连接并操作:

复制代码

D:\>mongo
MongoDB shell version: 2.4.8
connecting to: test
> use admin
switched to db admin
> show collections
Sun Jun 29 11:17:27.103 error: {
"$err" : "not authorized for query on admin.system.namespaces",
"code" : 16550
} at src/mongo/shell/query.js:128

复制代码

发现如果不加身份信息默认连接的话,是没有权限操作的。我们验证下之前添加的用户,再操作试下:

> db.auth('sa','sa')
1            //返回1表示验证成功,返回0表示验证失败
> show collections
system.indexes
system.users

发现验证成功可以对admin库进行操作了,我们再连接其他库试试:

复制代码
D:\>mongo
MongoDB shell version: 2.4.8
connecting to: test
> show collections
Sun Jun 29 11:20:17.996 error: {
        "$err" : "not authorized for query on test.system.namespaces",
        "code" : 16550
} at src/mongo/shell/query.js:128
> db.auth('sa','sa')
Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" }
0
复制代码

 发现这里验证失败了,之前设置的admin用户验证不管用。查了资料知道必须先从admin登录再use其他库才能被验证通过:

复制代码
D:\>mongo
MongoDB shell version: 2.4.8
connecting to: test
> use admin
switched to db admin
> db.auth('sa','sa')
1
> use test
switched to db test
> show collections
复制代码

 三、添加完顶层admin用户,可以用admin账户进行其他用户的设置

  如果想让单独的库有单独的用户名就得先从admin登录然后设置相应的用户信息,具体操作如下:

复制代码
D:\>mongo
MongoDB shell version: 2.4.8
connecting to: test
> use admin
switched to db admin
> db.auth('sa','sa')
1                                //先从admin登录
> use test
switched to db test
> show collections
> db.addUser('test','test') //添加test库的用户
{
        "user" : "test",
        "readOnly" : false,
        "pwd" : "a6de521abefc2fed4f5876855a3484f5",
        "_id" : ObjectId("53af874c5017b6747e68da2a")
} 
复制代码

再次单独登录test试试:

复制代码
D:\>mongo
MongoDB shell version: 2.4.8
connecting to: test
> show collections       //未登录没有权限
Sun Jun 29 11:27:52.899 error: {
        "$err" : "not authorized for query on test.system.namespaces",
        "code" : 16550
} at src/mongo/shell/query.js:128
> db.auth('test','test')     //之前设置的账户
1                                    //登录成功
> show collections
system.indexes
system.users
复制代码

四、设置完admin账户后开启带权限参数的MongoDB服务在可视化管理器中管理用户权限

  在windows下我使用了MongoVUE可视化管理工具。建立新连接:

  之前启动不带auth参数的服务时,不添加用户名密码连接是可以连接的,因为设置了auth参数所以这里必须添加用户名和密码;把上面设置的admin用户sa填入就可以连接上了。 连接上之后打开一个库,里面有个Users设置

    

  这里可以对某一个库进行用户的添加删除修改等操作,这是最高权限的admin视图,如果用test库的test用户登录的话,视图就只能看见test库了

 

  以上就是windows下使用MongoDB在shell和可视化工具中对用户权限设置的简单操作方法。

 

 

http://www.cnblogs.com/henuadtc/p/3814928.html?utm_source=tuicool

分享到:
评论

相关推荐

    MongoDB设置访问权限、设置用户

    在设置其他用户权限之前,首先需要创建一个具有“root”角色的管理员用户。在mongo shell中运行: ```javascript use admin db.createUser({ user: "admin", pwd: "yourAdminPassword", roles: ["root"] }) ``` ...

    MongoDB权限设置

    ### MongoDB权限设置详解 #### 一、概述 在现代数据管理中,安全性是至关重要的一个方面,MongoDB作为一款流行的NoSQL数据库系统也不例外。本文将详细介绍如何在MongoDB中进行权限设置,确保数据的安全访问与操作...

    mongodb 添加用户及权限设置详解

    本篇文章将详细讲解如何在 MongoDB 中添加用户及设置权限。 首先,与 MySQL 等传统的关系型数据库不同,MongoDB 并没有预设的管理员账号。这意味着在启用权限认证之前,你需要自己创建管理员账户。在 MongoDB 的 ...

    MongoDB创建用户并设置权限[借鉴].pdf

    在实际的生产环境中,数据安全是至关重要的,因此,设置用户权限管理是必要的步骤。本篇文章将详细解析如何在MongoDB中创建用户并设置权限。 首先,我们需要理解MongoDB权限的基本概念。MongoDB在默认情况下不启用...

    MongoDb db.createUser用户权限

    在MongoDB中,管理用户权限是数据库安全的重要环节。`db.createUser` 方法就是用于创建具有特定权限的用户的。以下是对 `db.createUser` 使用的详细介绍: ### 1. `db.createUser` 方法的官方文档参考 `db.create...

    Mongodb权限管理

    在MongoDB中,权限管理主要涉及到用户、角色以及数据库级别的访问控制。这篇博客文章将深入探讨MongoDB权限系统的核心概念和实践操作。 首先,我们来了解MongoDB中的用户管理。在MongoDB中,用户是在特定数据库中...

    Mysql与MongoDB的权限管理与申请_20180818_张煜杰1

    3. **权限申请与审批流程**:MongoDB的权限申请和审批流程相对简单,一般包括用户提交申请、项目负责人审批、DBA进行权限授予等步骤。这个过程确保了权限的合理分配和安全控制。 综上所述,无论是MySQL还是MongoDB...

    windows_mongodb安装权限.zip

    本文将详细介绍如何在Windows上安装MongoDB,并为`admin`管理用户授予必要的权限,以便能够安全地操作数据库。 一、安装MongoDB 1. 下载安装包:首先,访问MongoDB官方网站...

    Linux运维-03-NoSQL数据库之MongoDB-13用户权限管理.mp4

    Linux运维-03-NoSQL数据库之MongoDB-13用户权限管理.mp4

    mongodb副本集+权限

    用户管理包括创建用户、修改用户权限和删除用户。每个用户至少需要有`dbAdmin`、`userAdmin`或`__system`角色之一,以便能够进行用户管理操作。 MongoDB的安全配置还包括使用密钥文件(keyFile)来加强副本集成员...

    MongoDB-demo, 权限管理系统移植到MongoDB数据库.zip

    这个示例可能包含一个基于Web的用户界面,用于管理用户权限。Web系统通常由前端(HTML/CSS/JavaScript)和后端(Node.js等服务器端语言)组成,通过API与数据库交互。 5. Node.js: Node.js是一个基于Chrome V8...

    Windows下MongoDB配置用户权限实例

    综上所述,MongoDB的用户权限配置涉及多个步骤,包括用户创建、角色分配以及对服务进行设置来启用认证。正确配置这些设置,可以确保MongoDB数据库的安全,防止未授权访问和潜在的数据泄露风险。在实际操作中,需要...

    MongoDB为用户设置访问权限

    正确设置用户权限不仅可以提高数据的安全性,还可以根据不同的业务需求为不同角色分配适当的访问权限,从而更好地保护敏感数据。此外,对于初学者来说,了解这些基础操作也有助于深入掌握MongoDB的核心概念和技术...

    Mongodb 3.2.9开启用户权限认证问题的步骤详解

    以下是一份详细的步骤指南,帮助你了解如何在 MongoDB 3.2.9 中设置用户权限认证。 ### 前言 默认情况下,MongoDB 安装后是无认证模式,这意味着任何人都可以直接连接并操作数据库。然而,为了防止未经授权的访问...

    MongoDB 权限 角色 详细说明

    数据库使用者及管理者角色是MongoDB 中最基本的角色之一。该角色拥有读取所有非系统数据库的权限,以及访问 system.indexes, system.js, 和 system.namespaces 等系统数据库的权限。此外,该角色还拥有读取 ...

    mongodb基础之用户权限管理实例教程

    本教程将深入讲解 MongoDB 中的用户权限管理,帮助你理解和掌握如何创建、管理和配置用户权限。 首先,我们需要启动 MongoDB 服务器。在命令行中,你可以使用 `mongod` 命令并指定配置文件来启动服务,例如:`./bin...

    阿里云-云数据库MongoDB-用户手册-D.docx

    阿里云云数据库MongoDB用户手册 本手册详细介绍了阿里云云数据库MongoDB的使用手册,涵盖了云数据库MongoDB的产品功能、购买方式、管理控制台、备份和恢复、性能监控、安全保障、专业工具支持和售后服务等方面的...

Global site tag (gtag.js) - Google Analytics