Step into MongoDB - 16 - 账号管理

来源:互联网 发布:sql select 两个字段 编辑:程序博客网 时间:2024/06/05 08:52

目录

    • 账号管理
      • 概述
      • 管理员
        • 添加系统管理员账号
        • 特定数据库的管理员
        • 无限制的管理员
      • 一般用户
      • 启用权限验证
      • 授权
      • 删除用户

摘要

建立管理员,建立一般用户,授权,删除用户

账号管理

概述

  • mongodb 没有默认管理员账号。
  • 切换到 admin 数据库,添加的账号才是管理员账号。
  • 用户只能在用户所在数据库登录,包括管理员账号。
  • 管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在 admin 数据库认证后才可以。

管理员

添加系统管理员账号

基本定义

需要在 admin 数据库下

db.createUser(user, writeConcern)

user 的数据格式

{ user: "<name>",  pwd: "<cleartext password>",  customData: { <any information> },  roles: [    { role: "<role>", db: "<database>" } | "<role>",    ...  ]}

use admin;db.createUser(  {    user: "siteUserAdmin",    pwd: "password",    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  })

特定数据库的管理员

格式

需要先切换到对应的数据库

use 数据库名;db.createUser(  {    user: "用户名",    pwd: "密码",    roles:    [      {        role: "userAdmin",        db: "数据库名"      }    ]  })

db.createUser(  {    user: "recordUserAdmin",    pwd: "password",    roles: [ { role: "userAdmin", db: "mydb" } ]  })

无限制的管理员

use admindb.createUser(    {      user: "用户名",      pwd: "密码",      roles: [ "root" ]    })

一般用户

use 数据库名db.createUser(    {      user: "用户名",      pwd: "密码",      roles: [        {          role: "read", #or "readWrite"          db: "数据库名"        }      ]    })

启用权限验证

配置文件

auth=true

mongod --auth

注意修改权限后需要重新启动服务器

授权

用户只能在用户所在数据库登录,管理员需要通过 admin 认证后才能管理其他数据库

启动时指定

mongo -u user1 -p psw --authenticationDatabase mydb

启动后指定

use 数据库名;db.auth("用户名", "密码")

删除用户

直接操作数据库 db.system.users

0 0
原创粉丝点击