MongoDB 的权限设置其实蛮直接的,搞过数据库的你一看就懂。它默认不开启认证,连上就能操作,听起来爽对吧?但真上线就得小心点,还是得加把锁才安心。嗯,MongoDB 是把用户信息存在admin
库的system.users
集合里,创建用户、分配权限也都在这搞定,挺清晰的。
权限开启那一套操作也不复杂。先启动服务,再用mongo
连进去,切到admin
,创建个管理员用户,比如叫myUserAdmin
,配个userAdminAnyDatabase
的权限,管整个数据库用户都没问题。创建完了,记得加上--auth
参数重启服务,开启认证,不然白忙活了。
就是加普通用户。比如你有两个库test
和reporting
,想让测试人员能读写这两个库,那就用管理员账号登录,用db.createUser()
搞定。用户名myTester
,密码随便起,权限配上readWrite
就好了。权限搞定后,你还可以用db.auth()
来验证一下能不能正常登录和插入数据。
MongoDB 的角色挺细的,像read
、readWrite
、userAdminAnyDatabase
这些,配合起来可以做到挺细的访问控制。你要是做中大型项目,建议权限分清楚点,别图省事开全权,后面出了问题就麻烦了。
对了,官方文档是一定要看的,不过要是想更直观点,你也可以看看这个MongoDB 用户权限设置的资源,讲得还挺清楚的。如果你平时还用Hive
、MySQL
,下面的相关文章也可以一起看看,设置方法有点像。
如果你正准备部署 MongoDB 上线,建议现在就把权限这一块搞好。一步一步来,其实不难。权限配置对了,不仅安全,管理起来也省心。