MongoDB 数据库设置账号密码(权限)
# 创建管理员账户并赋予权限
打开 cmd 或 Xshell,进入到 mongo 的 bin 目录下,输入命令:
# 进入数据库
./mongo
# 进入admin数据库,成功会显示:switched to db admin
use admin
# 设置用户名密码
db.createUser( {user: "用户名",pwd: "密码",roles: [ { role: "root", db: "admin" } ]})
1
2
3
4
5
6
2
3
4
5
6
用户添加成功后会出现成功的字样和添加的用户信息。然后执行:
db.auth('用户名','密码')
1
若返回 “1” 则代表设置成功。
注意
帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。
# 给自定义数据库设置权限
例如我们新建了一个 test 数据库,设置账号:'adminDb',密码:'123456':
use test
db.createUser( {user: "adminDb",pwd: "123456",roles: [ { role: "readWrite", db: "test" } ]})
db.auth('adminDb','123456') #若返回 “1” 则代表设置成功。
1
2
3
2
3
进入 mongodb.conf (opens new window) 这个配置文件,添加:
auth = true
1
保存文件,重启 mongodb 服务 (opens new window)即可。
# 用户角色列表
Read
:允许用户读取指定数据库readWrite
:允许用户读写指定数据库dbAdmin
:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profileuserAdmin
:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户clusterAdmin
:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。readAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的读权限readWriteAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的读写权限userAdminAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限dbAdminAnyDatabase
:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。root
:只在admin数据库中可用。超级账号,超级权限。
# 内置角色
- 数据库用户角色:
read
、readWrite
; - 数据库管理角色:
dbAdmin
、dbOwner
、userAdmin
; - 集群管理角色:
clusterAdmin
、clusterManager
、clusterMonitor
、hostManager
; - 备份恢复角色:
backup
、restore
; - 所有数据库角色:
readAnyDatabase
、readWriteAnyDatabase
、userAdminAnyDatabase
、dbAdminAnyDatabase
; - 超级用户角色:
root
; - 内部角色:
__system
; 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner
、userAdmin
、userAdminAnyDatabase
);
# 数据库操作相关命令
# mongodb 进程
ps -ef |grep mongodb
# 查看数据已存在的数据库
show dbs
# 进入数据库
use <数据库名称>
# 查看当前数据库下的所有用户
show users
# 查看当前数据库中的数据表
show tables
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
上次更新: 2024/01/30, 00:35:17
- 01
- Node与GLIBC_2.27不兼容解决方案08-19
- 02
- Git清空本地文件跟踪缓存08-13