mac 安装完mongodb4.2之后默认是不需要用户就直接可一登录的。
修改完需要登录用户的
修改 MongoDB 配置文件, 配置文件默认在 /usr/local/etc 下的 mongod.conf
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
#127.0.0.1默认只能本机链接
bindIp: 127.0.0.1
#配置文件开启强制验证
security:
authorization: "enabled"
之后可以使用 brew services restart mongodb-community@4.2 重启
或者使用mongd 启动(可以强制带上 auth参数) 如
mongod --config c:\mongodb\mongod.cfg --dbpath c:\mongodb\data\db\ --auth
通过命令设置超级管理员
设置 admin
use admin
db.createUser({
user: 'admin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'root', // 角色
db: 'admin' // 数据库
}]
})
设置完成,可以输入 show users 查看是否设置成功。
开启验证
命令行 输入 mongo
MacBook-Pro:~ wuzz$ mongo
MongoDB shell version v4.2.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ffee4847-fd10-4523-ae06-f4a8330db2dd") }
MongoDB server version: 4.2.9
>
显示连接成功,但是当我们输入其他指令时,会提示没有权限:(我这里没有记录显示)
> show dbs
>
登录数据库
// 方式一
mongo
use admin
db.auth('admin', '123456')
// 方式二
mongo admin -u admin -p 123456
这时候我们就可以正常访问和操作数据了。
> show dbs
> use admin
switched to db admin
> db.auth('admin','123456')
1
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
test 0.000GB
>
添加数据库用户
我们除了可以设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。
[ 复制代码](javascript:void(0); "复制代码")
<pre>use test // 跳转到需要添加用户的数据库
db.createUser({
user: 'fooadmin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'readWrite', // 角色
db: 'test' // 数据库名
}]
})</pre>
](javascript:void(0); "复制代码")
常用命令
[ 复制代码](javascript:void(0); "复制代码")
<pre>show users // 查看当前库下的用户
db.dropUser('testadmin') // 删除用户
db.updateUser('admin', {pwd: '654321'}) // 修改用户密码
db.auth('admin', '654321') // 密码认证</pre>
](javascript:void(0); "复制代码")
MongoDB 数据库默认角色
- 数据库用户角色:read、readWrite
- 数据库管理角色:dbAdmin、dbOwner、userAdmin
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
- 备份恢复角色:backup、restore
- 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase - 超级用户角色:root
网友评论