登录认证
db.auth('root','root');
如下:
请添加图片描述
1:表示成功 0:代表失败
mongoDB常用的shell命令
命令 | 说明 |
---|---|
show dbs | 显示数据库列表 |
use | 切换数据库 |
show collections | 显示数据库的所有表 |
show users | 显示当前数据库的用户列表 |
show roles | 显示当前数据库的角色列表 |
show profile | 显示最近发生的操作 |
load | 执行一个JavaScript脚本 |
quit | 推出当前shell |
使用help命令可以获取mongo shell的常用命令
在这里插入图片描述
MongoDB权限
MongoDB的权限和传统数据库的权限不一样,MongoDB除了全局用户之外每个数据库都有自己单独的用户表,以及用户权限。
请添加图片描述
创建超级用户
安装完之后,打开命令行,进入MongoDB安装目录,在bin目录下执行MongoDB启动,该模式下是不需要安全认证的模式。
use admin # 切换数据库
db.createUser({
user: 'admin',
pwd:'admin',
roles:[{
role:'root',
db:'admin'
}]
})
user用户名
pwd密码
db:指定用户的数据库,admin是用于权限控制的数据库,如果没有需要新建一个
roles:指定用户的角色,可以用一个空数组给新的用户设定空角色;在roles字段,可以指定内置角色和用户自定义的角色,role里的角色可以选的角色如下:
Built-In Roles(内置角色):
- 数据库用户角色: read, readWrite;
- 数据库管理角色:dbAdmin, dbOwner, userAdmin;
- 集群管理角色:clusterAdmin, clusterManager, clusterMonitor, hostManager;
- 备份恢复角色:backup, restore;
- 所有数据库角色:readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase;
- 超级用户角色: root,
- 内部角色: __system
修改用户权限
db.updateUser('admin', [{role:'readWrite',db:'admin'}])
updateUser它是完全替换之前的值,如果要新增或添加roles而不是替换它则可以选择db.grantRolesToUser()和db.revokeRolesFromUser()
db.grantRolesToUser('admin', [{role:'readWrite',db:'admin'}]);#追加权限
db.revokeRolesFromUser('admin', [{role:'readWrite',db:'admin'}]);#删除权限
删除用户
db.dropUser('admin')