Uploaded image for project: 'Compass '
  1. Compass
  2. COMPASS-4697

Investigate changes in SERVER-36263: Bypassing operation validation in applyOps should require special privilege

    XMLWordPrintable

    Details

    • Type: Investigation
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: No version
    • Component/s: None
    • Labels:
      None
    • Documentation Changes:
      Not Needed

      Description

      Downstream Change Summary

      We are adding a new privilege that must be acquired to be able to perform
      "applyOps" command.
      ActionType-> applyOps
      Resource-> cluster

      Description of Linked Ticket

      As of SERVER-25994, a user can run applyOps if they have the privileges to perform each individual operation specified in the the applyOps command. However, applyOps is more powerful than other commands in that it avoids certain input validation (see SERVER-27096SERVER-32941SERVER-32952, and SERVER-32305). This is done intentionally, since applyOps is supposed to behave similarly to oplog application, where the primary does all validation and the secondary applies the changes exactly as the primary specified without validation. This feature is important to products that mimic oplog application, such as mongomirror and mongorestore. However, users should not be able to bypass validation simply because they have permission to write to a collection. Instead, applyOps should require a special privilege for bypassing validation.

      We will create a new privilege bypassing system-level invariants in applyOps. Today, this privilege will be required in order to run applyOps at all, since we have not implemented a version of applyOps that performs validation. The privilege will be included in dbAdminAnyDatabase, which is included in the custom role atlasAdmin and the temporary user that we create for Live Imports (mongomirror).

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              backlog-server-pm Backlog - Core Eng Program Management Team
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: