标签:html 分片 信息 返回 star 读写权限 blank any tps
1 设置管理员账户
use admin
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。
2 验证
db.auth("useradmin", "adminpassword")
如果返回1,则表示成功。
3 修改配置文件(注意缩进)
sudo vi /etc/mongod.conf
#security:
security:
authorization: enabled
4 重启mongodb
sudo service mongod restart
5 创建普通用户
进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号
+先进行管理员认证
use admin db.auth("useradmin", "adminpassword")
+设置其他库的账号密码及权限
use yourdatabase db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等
#coding=utf-8 #导入模块 from pymongo import MongoClient #建立连接 client=MongoClient("localhost",27017) #数据库名admin db=client.admin #认证用户密码 db.authenticate(‘root‘,‘123456‘) #创建集合和数据 db.test.insert({"name":"this is test"}) col=db.test #打印数据输出 for item in col.find(): print item #关闭连接 client.close()
mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
use foo db.createUser( { user: "simpleUser", pwd: "simplePass", roles: [ { role: "readWrite", db: "foo" }, { role: "read", db: "bar" } ] } ) 现在我们有了一个普通用户 用户名:simpleUser 密码:simplePass 权限:读写数据库 foo, 只读数据库 bar。 注意 use foo表示用户在 foo 库中创建,就一定要 foo 库验证身份,即用户的信息跟随随数据库。
比如上述 simpleUser 虽然有 bar 库的读取权限,但是一定要先在 foo 库进行身份验证,直接访问会提示验证失败。 use foo db.auth("simpleUser", "simplePass") use bar show collections 还有一点需要注意,如果 admin 库没有任何用户的话,即使在其他数据库中创建了用户,启用身份验证,默认的连接方式依然会有超级权限
参考:
https://www.2cto.com/database/201802/724340.html
https://www.jianshu.com/p/79caa1cc49a5
https://blog.51cto.com/1767340368/2092960
标签:html 分片 信息 返回 star 读写权限 blank any tps
原文地址:https://www.cnblogs.com/hei-hei-hei/p/10601016.html