小编Ori*_*Rio的帖子

我的只读用户可以写

我正在使用 MongoDB 3.0.7。我有一个名为的数据库bravegoat和一个名为的只读用户bravegoat-r

我通过外壳连接:

mongo localhost:27017/bravegoat -u bravegoat-r -p mypassword
Run Code Online (Sandbox Code Playgroud)

我切换到我的数据库:

use bravegoat;
Run Code Online (Sandbox Code Playgroud)

我跑:

db.runCommand({connectionStatus : 1})
Run Code Online (Sandbox Code Playgroud)

哪些输出:

{
        "authInfo" : {
                "authenticatedUsers" : [
                        {
                                "user" : "bravegoat-r",
                                "db" : "bravegoat"
                        }
                ],
                "authenticatedUserRoles" : [
                        {
                                "role" : "read",
                                "db" : "bravegoat"
                        }
                ]
        },
        "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

只有read角色,所以看起来不错,但是当我调用时.save(),我的用户可以插入数据。我已经阅读了几页关于创建只读用户的页面,但我看不到我的问题。我开始认为这可能是我的版本中的一个错误。

mongodb

5
推荐指数
1
解决办法
446
查看次数

NodeJS 和 TCP 性能

我正在使用net模块测试两个 NodeJS 实例之间通过 TCP 的通信。

由于 TCP 不依赖于消息 ( socket.write()),因此我将每个消息包装在一个字符串中msg "{ json: 'encoded' }";,以便单独处理它们(否则,我会收到包含随机数量的串联消息的数据包)。

我在具有桥接网络的 CentOS 6.5 VirtualBox 虚拟机和基于 Core i3 的主机上运行两个 NodeJS 实例(服务器和客户端)。测试在于客户端向服务器发出请求并等待响应:

  1. 客户端连接到服务器。
  2. 客户端输出当前时间戳 ( Date.now())。
  3. 客户端发出n 个请求。
  4. 服务器回复n个请求。
  5. 客户端在每次响应时都会增加一个计数器。
  6. 完成后,客户端输出当前时间戳。

代码非常简单:

服务器

var net = require('net');

var server = net.createServer(function(socket) {

    socket.setNoDelay(true);

    socket.on('data', function(packet) {

        // Split packet in messages.
        var messages = packet.toString('utf-8').match(/msg "[^"]+";/gm);

        for (var i in messages) {

            // Get message content (msg "{ …
Run Code Online (Sandbox Code Playgroud)

tcp node.js

4
推荐指数
1
解决办法
5556
查看次数

标签 统计

mongodb ×1

node.js ×1

tcp ×1