MongoDB默认是不创建用户,但是为了保证的MongoDB数据的安全,就需要给MongoDB配置用户和分配操作权限。
MongoDB创建用户步骤:
1.创建管理员账户
2.开启权限验证
3.给指定数据库创建用户并分配操作权限
1.创建管理员账户
mongo安装略,配置如下:
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: /data/mongo
processManagement:
fork: true
net:
bindIp: 0.0.0.0
port: 27017
maxIncomingConnections: 56635
setParameter:
enableLocalhostAuthBypass: false
键入如下命令启动mongoDB:
mongo -f /etc/mongo.conf
在登录到MongoDB数据库之后,键入如下名命令切换到admin数据中:
use admin
键入如下命令,给admin数据库创建管理员账户:
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
键入如下命令,查看创建结果:
show users
2.开启权限认证
在mongoDB的配置文件中添加security.autorization=enabled
即可开启mongoDB权限认证功能。
mongo配置如下:
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: /data/mongo
processManagement:
fork: true
net:
bindIp: 0.0.0.0
port: 27017
maxIncomingConnections: 56635
setParameter:
enableLocalhostAuthBypass: false
security:
authorization: enabled
重新启动mongoDB.
3.给指定数据库创建用户并分配操作权限
在登录到MongoDB数据库之后,键入如下名命令切换到admin数据中:
use admin
在切换到admin
数据库之后,键入如下命令切换到root管理员账户:
db.auth('root','123456')
或者直接使用root用户登录到admin数据库,命令如下:
mongo admin -u root -p 123456
使用管理员创建普通用户并且给用户授权一个数据库
切换到带授权数据库,命令如下:
use auth_test
创建一个用户,并给该用户授与auth_test数据库读写权限,命令如下:
db.createUser({user: "testUser",pwd: "123456",roles: [ { role: "readWrite", db: "auth_test" } ]})
验证授权
退出登录,使用testUser登录。
键入如下命令使用testUser用户登录auth_test数据库:
mongo admin -u testUser -p 123456
用户角色授权命令
授予角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])
取消角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])
删除用户
db.system.users.remove({user:"userName"})
修改用户密码
db.changeUserPassword("userName", "new password")