暴走大事件第9期,澳门街粤语版,思维与智慧杂志
因为目前有一个试验性的项目想要使用nosql,而mongodb在工作中有一定的接触,所以这个项目打算使用mongodb,而在真正从下载到安装到使用的时候发现了不少的知识点,以此作为记录。
#mongodb config file dbpath=/users/reesemonica/mongodb/data/db logpath=/users/reesemonica/mongodb/mongod.log logappend=true fork=true auth=true
error: listdatabases failed:{ "ok" : 0, "errmsg" : "command listdatabases requires authentication", "code" : 13, "codename" : "unauthorized" }
db.createuser( { user: "root", pwd: "root", roles: [ { role: "useradminanydatabase", db: "admin" } ] } )
创建用户的命令的各个参数基本上通过参数名就知道是做什么的,其中roles.db参数是指定用户的数据库,admin数据库虽不知道它具体做什么的,但既然创建超级用户需要在这里,想必就是存储一些用户信息的。
在创建好超级用户后,此时还不能执行show dbs命令,还需要做一次权限认证db.auth('root','root'),返回1表示认证成功,此时再输入show dbs会回显以下:
admin 0.000gb config 0.000gb local 0.000gb
writecommanderror({ "ok" : 0, "errmsg" : "not authorized on recommended to execute command { insert: \"recommended\", ordered: true, lsid: { id: uuid(\"5b1b337e-831a-4fb2-b90c-d6d0b347ad79\") }, $db: \"recommended\" }", "code" : 13, "codename" : "unauthorized" })
这意思还是没有授权,但我明明不是已经创建了一个超级用户了吗,mysql不就能通过一个超级用户畅通无阻吗。
事实是,mongodb的用户权限和数据库是绑定的。也就是创建一个新的数据库,并在数据库中插入数据的正确操作应该是需要创建与之对应的用户,下面退出mongodb命令行模式,重新进入:
以上是学习mongodb所积累到的第一个知识点**用户权限**,通过命令行模式不足以直观地展示数据,可使用其他可视化工具对mongodb进行操作,例如robo 3t。
这是一个能给程序员加buff的公众号
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
理解Redis持久化,RDB持久化和AOF持久化的不同处理方式
Redis 两类持久化方式,快照和全量追加日志的不同处理方式
网友评论