进入mongodb安装目录,
cd /www/server/mongodb/bin
输入命令行mongo,进入mongodb环境
./mongo
创建用户
user: 用户名
pwd: 用户密码
roles: 用来设置用户的权限,比如读,读写 等等
use admin
db.createUser({user: 'root', pwd: '123456', roles: ['root']})
use Article
db.createUser({user:'test',pwd:'123456',roles: [{role:'readWrite',db:'Article'}]})
验证是否添加成功,db.auth(用户名,用户密码)
db.auth('root', 'mima')
如果返回 '1’表示验证成功, 如果是 ‘0’ 表示验证失败。
给特定的每个库设置权限
切换到demo库
use demo
接下来为demo库添加一个用户,并且赋予权限
db.createUser ({ user: 'admin', pwd: 'demo_mima', roles: [{ role: 'readWrite', db: 'demo' }] })
这行代码意思是 创建一个admin用户 给予读写权限 db表示该用户操作的数据库名。
示例:
创建用户名:cloududo 用户密码:cloudduo_mima 授权:cloudduo 读写权限。
> use cloudduo
>
> db.createUser({ user: 'cloudduo', pwd: 'cloudduo_mima', roles: [{ role: 'readWrite', db: 'cloudduo' }] })
Successfully added user: {
"user" : "cloudduo",
"roles" : [
{
"role" : "readWrite",
"db" : "cloudduo"
}
]
}
Role参数说明
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
pymongo连接
import pymongo
mongoClinet = pymongo.MongoClient('mongodb://test:123456@localhost:27017/Article')
dblist = mongoClinet.list_database_names()
print(dblist)
开启远程访问
BindIP 改为 0.0.0.0 允许外网访问
再更改配置文件,将 anthorization 由disable改为enabled
开启认证后宝塔面板 就看不到 mongo的数据库了,这是正常现象