mongodb 设置用户密码权限

1 设置管理员账户

use admindb.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。

2 验证

db.auth("useradmin", "adminpassword")

如果返回1,则表示成功。

3 修改配置文件(注意缩进)

sudo vi /etc/mongod.conf

#security:
security:
  authorization: enabled

4 重启mongodb

sudo service mongod restart

5 创建普通用户

进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号

  +先进行管理员认证

use admin
db.auth("useradmin", "adminpassword")

  +设置其他库的账号密码及权限

use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })

  rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等

  

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限

6 python 连接脚本

#coding=utf-8
#导入模块
from pymongo import MongoClient
#建立连接
client=MongoClient("localhost",27017)
#数据库名admin
db=client.admin
#认证用户密码
db.authenticate(‘root‘,‘123456‘)
#创建集合和数据
db.test.insert({"name":"this is test"})
col=db.test
#打印数据输出
for item in col.find():
    print item
#关闭连接
client.close()

7 注意

mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
use foo
db.createUser(
  {
    user: "simpleUser",
    pwd: "simplePass",
    roles: [ { role: "readWrite", db: "foo" },
             { role: "read", db: "bar" } ]
  }
)
现在我们有了一个普通用户
用户名:simpleUser
密码:simplePass
权限:读写数据库 foo, 只读数据库 bar。

注意
use foo表示用户在 foo 库中创建,就一定要 foo 库验证身份,即用户的信息跟随随数据库。比如上述 simpleUser 虽然有 bar 库的读取权限,但是一定要先在 foo 库进行身份验证,直接访问会提示验证失败。

use foo
db.auth("simpleUser", "simplePass")

use bar
show collections
还有一点需要注意,如果 admin 库没有任何用户的话,即使在其他数据库中创建了用户,启用身份验证,默认的连接方式依然会有超级权限

参考:

https://www.2cto.com/database/201802/724340.html

https://www.jianshu.com/p/79caa1cc49a5

https://blog.51cto.com/1767340368/2092960

原文地址:https://www.cnblogs.com/hei-hei-hei/p/10601016.html

时间: 2024-11-13 06:43:06

mongodb 设置用户密码权限的相关文章

Docker给MongoDB设置用户密码

Docker给MongoDB设置用户密码 没有用户和密码,MongoDB的客户端NoSQL Manager for MongoDB是无法连接的 设置用户和密码如下 #admin进入 docker exec -it 10b15378e5ae mongo admin #创建用户和密码 db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin&q

MongoDB(四)mongodb设置用户访问权限

我们知道MySQL在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全,我们需要手动的为mongodb加上权限限制命令. 首先建立一个默认的账户 Use admin Db.addUser('sa','sa') 这样我们建立了一个用户名为sa,密码为sa的默认账户. 在此时我们还是可以不输入用户名和密码进入数据库的,接下来我们做如下的修改. 打开mongodb所在的注册

深入浅出MongoDB(四)mongodb设置用户访问权限

我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全,我们需要手动的为mongodb加上权限限制命令. 首先建立一个默认的账户 Use admin Db.addUser('sa','sa') 这样我们建立了一个用户名为sa,密码为sa的默认账户. 在此时我们还是可以不输入用户名和密码进入数据库的,接下来我们做如下的修改. 打开mongodb所在的注册

mongoDB之用户及权限设置 转载 还没有仔细查看细节东西

之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB.在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问.想想很不对劲还是设置下用户授权吧. 我部署的环境是windows下MongoDB2.4.8版本.首先要开启安全模式的话,在启动MongoDB服务的时候就要加上--auth参数,命令如下: D:\mongodb>mongod.exe --dbpath D:\mongodb\data --logpath=D:\mongodb\logs

mongoDB之用户及权限设置

之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB.在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问.想想很不对劲还是设置下用户授权吧. 我部署的环境是windows下MongoDB2.4.8版本.首先要开启安全模式的话,在启动MongoDB服务的时候就要加上--auth参数,命令如下: D:\mongodb>mongod.exe --dbpath D:\mongodb\data --logpath=D:\mongodb\logs

Kubernetes Dashboard 设置用户密码登陆

Kubernetes Dashboard 设置用户密码登陆 标签(空格分隔): Kubernetes2019年05月20日 K8s 文档 K8s 1.13源码安装k8s dashboard token访问 仪表板是基于Web的Kubernetes用户界面.您可以使用仪表板将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源.您可以使用仪表板来概述群集上运行的应用程序,以及创建或修改单个Kubernetes资源(例如部署,作业,守护进程等).例如

oracle 11g 设置用户密码大小写敏感

11g通过一个参数设置密码大小写敏感,下面来做个试验: C:\Documents and Settings\guogang>sqlplus gg_test/[email protected]_gg SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 8月 4 17:54:19 2014 Copyright (c) 1982, 2005, Oracle.  All rights reserved. 连接到: Oracle Database 11g En

MongoDB系列---用户及权限管理02

MongoDB-——Privilege 学习大纲: 1.用户权限管理 2.用户操作 知识回顾:  本系列上一篇博文我们讲述了如何搭建环境以及配置我们的MongoDB,通过搭建环境后我们又学习了如何通过简单的命令和配置来启动关闭我们的MongoDB. 一 用户及权限管理 前言: MongoDB 作为时下最为热门的数据库,那么其安全验证也是必不可少的,否则一个没有验证的数据库暴露出去,任何人可随意操作,这将是非常危险的.我们可以通过使用为MongoDB 创建用户的方式来降低风险 1 MongoDB用

mysql 用户/密码/权限操作

由于最近使用mysql遇到了修改用户密码的问题,所以一块学习了一下关于用户的相关操作: 1. 创建新账户 CREATE USER 'jeffrey'@'localhost'; 2. 账户设置密码 #当前用户设置密码 SET PASSWORD = PASSWORD('mypass'); #给指定账户设置密码 SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('mypass'); 3. 给账户赋权限 #赋权限 GRANT ALL ON db1.* T