当前位置: 首页 > 后端技术 > Node.js

MongoDB只读权限设置

时间:2023-04-03 12:43:36 Node.js

微信公众号:【前端一锅煮】一点技术,一点思考。有问题或建议,欢迎留言公众号。查看本地mongodb版本的相关命令:mongo-version查看本机运行的mongodb:psaux|grepmongodb连接本地数据库:mongolocalhost:27017使用账号密码连接本地数据库:mongo-port27017-u'admin'-p'admin_root_test'显示数据库列表:showdbs切换/创建数据库:usemytest删除当前数据库:db.dropDatabase()创建集合:db.createCollection('book')显示当前所有用户:showusers删除用户:db.dropUser('myread')killrunningmongodb:killpidread-only权限设置startmongodb服务mac:mongod--dbpath/usr/local/var/mongodb--logpath/usr/local/var/log/mongodb/mongo.log--forklinux:systemctlstartmongod或servicemongodstart输入命令mongolocalhost:27017创建管理员帐户使用admindb.createUser({user:'admin',pwd:'admin_root_test',roles:[{role:'root',db:'admin'}]})关闭mongodbdb.adminCommand({shutdown:1})或ps-ef|grepmongodb//检查momgodbpidkillpid并使用权限认证重新打开mongod--auth--dbpath/usr/local/var/mongodb--logpath/usr/local/var/log/mongodb/mongo.log--forkorvi/etc/mongod.confsecurity:authorization:enabled再次输入命令mongo-port27017-u'admin'-p'admin_root_test'创建只读用户usemytest//创建数据库db.createCollection('book')//创建一个集合,以便showdbs可以显示数据库db.createUser({user:'myread',pwd:'myread_pwd',roles:[{role:'read',db:'mytest'}]})角色权限解释Built-InRoles(内置角色):数据库用户角色:read、readWrite数据库管理角色:dbAdmin、dbOwner、userAdmin。集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager。备份和恢复作用:备份、恢复。所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase。超级用户角色:root还有几个角色可以间接或直接提供系统超级用户访问权限(dbOwner、userAdmin、userAdminAnyDatabase)。内部角色:__system.具体作用:读取:允许用户读取指定的数据库。readWrite:允许用户读写指定的数据库。dbAdmin:允许用户在指定的数据库中执行管理功能,例如索引创建、删除、查看统计信息或访问。userAdmin:允许用户写入system.users集合,可以在指定的数据库中创建、删除和管理用户。clusterAdmin:仅在管理数据库中可用,它授予用户所有分片和副本集相关功能的管理权限。readAnyDatabase:仅在admin数据库中可用,授予用户对所有数据库的读取权限。readWriteAnyDatabase:仅在admin数据库中可用,授予用户对所有数据库的读写权限。userAdminAnyDatabase:仅在admin数据库中可用,授予用户userAdmin对所有数据库的权限。dbAdminAnyDatabase:仅在admin数据库中可用,授予用户dbAdmin对所有数据库的权限。root:仅在admin数据库中可用。超级账号,超级权限。