MongoDB的权限管理

1.用户权限说明

image.png

2.用户创建语法

{
user: "<name>", user字段:用户的名字;
pwd: "<cleartext password>", pwd字段:用户的密码;
customData: { <any information> }, cusomData字段:为任意内容
roles: [
roles字段:指定用户的角色,可以用一个空数组给新用户设定空角色;
{ role: "<role>",
db: "<database>" } | "<role>",
...
]
}
roles 字段:可以指定内置角色和用户定义的角色。
roles字段:指定用户的角色,可以用一个空数组给新用户设定空角色;

3.创建管理员用户

3.1进入管理数据库
> use admin
创建管理用户,root权限
 >db.createUser(
    {
      user: "root",
      pwd: "root",
      roles: [ { role: "root", db: "admin" } ]
    }
    )    

注意:
创建管理员角色用户的时候,必须到admin下创建。删除的时候也要到相应的库下操作。

3.2查看创建完用户后的collections;
    >use admin
    > show collections; 
      system.users  # 用户存放位置
      system.version
    
    > db.system.users.find().pretty()
    {
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "credentials" : {
            "SCRAM-SHA-1" : {
                "iterationCount" : 10000,
                "salt" : "v3v1oEvwvX70i+ENCkSiLQ==",
                "storedKey" : "aswu2GvDubCXFokl72ZVYzgW1DA=",
                "serverKey" : "6maLC10hXo+MJACBWhkwEfRuRkE="
            }
            },
        "roles" : [
            {
                "role" : "root",
                "db" : "admin"
            }
        ]
    }

    > show users   (只能查询本库)
      {
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "roles" : [
            {
                "role" : "root",
                    "db" : "admin"
            }
            ]
        }
3.3.验证用户是否能用
    > db.auth("root","root")
    1  # 返回 1 即为成功
3.4.用户创建完成后在配置文件中开启用户验证
    cat >>/etc/mongod.conf<<-'EOF'
      security:
      authorization: enabled
      EOF
      ** *之后需要重启服务****

4登录MongoDB

方法一:命令行中进行登陆
  [mongod@MongoDB ~]$ mongo -uroot -proot admin 
  MongoDB shell version: 3.2.8
  connecting to: admin
方法二:在数据库中进行登陆验证:
  [mongod@MongoDB ~]$ mongo 
    MongoDB shell version: 3.2.8
    connecting to: test
    > use admin
    switched to db admin
  > db.auth("root","root")
  1
  > show tables;
    system.users
    system.version

5按生产需求创建应用用户

创建只读用户
5.11在test库创建只读用户test
  use test
  db.createUser(
    {
      user: "test",
        pwd: "test",
      roles: [ { role: "read", db: "test" } ]
      }
    )
5.1.2测试用户是否创建成功
  db.auth("test","test")
  show  users;
5.1.3登录test用户,并测试是否只读
    show collections;
    db.createCollection('b')
5.2创建某库的读写用户
5.2.1创建test1用户,权限为读写
    db.createUser(
      {
        user: "test1",
        pwd: "test1",
        roles: [ { role: "readWrite", db: "test" } ]
      }
    )
5.2.2查看并测试用户
    show users;
    db.auth("test1","test1")
5.3创建对多库不同权限的用户
5.3.1创建对app为读写权限,对test库为只读权限的用户
    use app
    db.createUser(
      {
        user: "app",
        pwd: "app",
        roles: [ { role: "readWrite", db: "app" },
             { role: "read", db: "test" }
         ]
        }
       )
5.3.2查看并测试用户
    show users
    db.auth("app","app")

6.删除用户

1.删除app用户:先登录到admin数据库
  mongo -uroot –proot 127.0.0.1/admin
2.进入app库删除app用户
  use app
  db.dropUser("app")

7. 自定义数据库

1.创建app数据库的管理员:先登录到admin数据库
  use app
  db.createUser(
  {
  user: "admin",
  pwd: "admin",
  roles: [ { role: "dbAdmin", db: "app" } ]
  }
  )
2.创建app数据库读写权限的用户并具有clusterAdmin权限:
  use app
  db.createUser(
    {
    user: "app04",
    pwd: "app04",
    roles: [ { role: "readWrite", db: "app" },
    { role: "clusterAdmin", db: "admin" }
    ]
    }
     )

SQL与MongoDB语言对比

mongo博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,738评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,377评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,774评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,032评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,015评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,239评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,724评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,374评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,410评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,457评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,132评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,733评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,804评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,022评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,515评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,116评论 2 341

推荐阅读更多精彩内容

  • MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端...
    散入风中阅读 1,267评论 0 3
  • http://www.cnblogs.com/zhoujinyi/p/4610050.html 创建用户,用户是跟...
    bbmm阅读 1,124评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 在黄昏 在球场 携着夕阳 打磨时光 带着不敷衍的步伐 干净利落 残阳拖出烟痕 低吟浅唱 红袖添香 我在红窗子前站了...
    你是我的梦诶阅读 298评论 0 1
  • 一、自杀的哲学基础 阿·加缪在《西西弗斯的神话》中,开始就写到:“真正严肃的哲学只有一个,那就是——自杀。判断...
    冰眉铁面阅读 770评论 11 20