diff --git a/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx b/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx
index d63f3b3363b7f574b8111b00e00c8f86b229cc07..4f6d154e4e0065563de935956faa5aeaaabde646 100644
--- a/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx
+++ b/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx
@@ -64,6 +64,7 @@ import { getMetadata } from "metabase/selectors/metadata";
 
 import NativeQuery from "metabase-lib/lib/queries/NativeQuery";
 
+import ExplicitSize from "metabase/components/ExplicitSize";
 import { loadMetadataForCard } from "metabase/query_builder/actions";
 
 const mapStateToProps = state => ({ metadata: getMetadata(state) });
@@ -73,13 +74,23 @@ const mapDispatchToProps = { loadMetadataForCard };
   mapStateToProps,
   mapDispatchToProps,
 )
+@ExplicitSize()
 class QueryBuilderReadOnly extends React.Component {
+  state = {
+    isNativeEditorOpen: false,
+  };
+
+  setIsNativeEditorOpen = open => {
+    this.setState({ isNativeEditorOpen: open });
+  };
+
   componentDidMount() {
     const { card, loadMetadataForCard } = this.props;
     loadMetadataForCard(card);
   }
+
   render() {
-    const { card, metadata } = this.props;
+    const { card, metadata, height } = this.props;
     const question = new Question(card, metadata);
 
     const query = question.query();
@@ -91,6 +102,9 @@ class QueryBuilderReadOnly extends React.Component {
           query={query}
           location={{ query: {} }}
           readOnly
+          viewHeight={height}
+          isNativeEditorOpen={this.state.isNativeEditorOpen}
+          setIsNativeEditorOpen={this.setIsNativeEditorOpen}
         />
       );
     } else {
diff --git a/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx b/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx
index e0cd914dde91b2c3759d206916fdfb92134479cd..cd76c8eb21a3df2143cfcd92787b4c42b2c4f4bf 100644
--- a/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx
+++ b/frontend/src/metabase/query_builder/components/NativeQueryEditor.jsx
@@ -648,43 +648,45 @@ export default class NativeQueryEditor extends Component {
               closeModal={this.props.closeSnippetModal}
             />
           )}
-          <div className="flex flex-column align-center">
-            <DataReferenceButton
-              {...this.props}
-              size={ICON_SIZE}
-              className="mt3"
-            />
-            <NativeVariablesButton
-              {...this.props}
-              size={ICON_SIZE}
-              className="mt3"
-            />
-            {showSnippetSidebarButton && (
-              <SnippetSidebarButton
+          {!readOnly && (
+            <div className="flex flex-column align-center">
+              <DataReferenceButton
                 {...this.props}
                 size={ICON_SIZE}
                 className="mt3"
               />
-            )}
-            <RunButtonWithTooltip
-              disabled={!isRunnable}
-              isRunning={isRunning}
-              isDirty={isResultDirty}
-              isPreviewing={isPreviewing}
-              onRun={this.runQuery}
-              onCancel={() => cancelQuery()}
-              compact
-              className="mx2 mb2 mt-auto"
-              style={{ width: 40, height: 40 }}
-              getTooltip={() =>
-                (this.props.nativeEditorSelectedText
-                  ? t`Run selected text`
-                  : t`Run query`) +
-                " " +
-                (isMac() ? t`(⌘ + enter)` : t`(Ctrl + enter)`)
-              }
-            />
-          </div>
+              <NativeVariablesButton
+                {...this.props}
+                size={ICON_SIZE}
+                className="mt3"
+              />
+              {showSnippetSidebarButton && (
+                <SnippetSidebarButton
+                  {...this.props}
+                  size={ICON_SIZE}
+                  className="mt3"
+                />
+              )}
+              <RunButtonWithTooltip
+                disabled={!isRunnable}
+                isRunning={isRunning}
+                isDirty={isResultDirty}
+                isPreviewing={isPreviewing}
+                onRun={this.runQuery}
+                onCancel={() => cancelQuery()}
+                compact
+                className="mx2 mb2 mt-auto"
+                style={{ width: 40, height: 40 }}
+                getTooltip={() =>
+                  (this.props.nativeEditorSelectedText
+                    ? t`Run selected text`
+                    : t`Run query`) +
+                  " " +
+                  (isMac() ? t`(⌘ + enter)` : t`(Ctrl + enter)`)
+                }
+              />
+            </div>
+          )}
         </ResizableBox>
       </div>
     );
diff --git a/frontend/test/metabase/scenarios/admin/audit/ad-hoc.cy.spec.js b/frontend/test/metabase/scenarios/admin/audit/ad-hoc.cy.spec.js
index 08a1cf91f108a501d1eacfe153fa06c45b225d86..c9e6f2d005ab8ffdac204048316bf6adf5683ebc 100644
--- a/frontend/test/metabase/scenarios/admin/audit/ad-hoc.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/audit/ad-hoc.cy.spec.js
@@ -5,7 +5,7 @@ import {
 } from "__support__/e2e/cypress";
 
 describeWithToken("audit > ad-hoc", () => {
-  describe("native query with JOIN", () => {
+  describe("native query", () => {
     beforeEach(() => {
       restore();
 
@@ -24,7 +24,7 @@ describeWithToken("audit > ad-hoc", () => {
       cy.signInAsAdmin();
     });
 
-    it.skip("should appear in audit log (metabase-enterprise#486)", () => {
+    it("should appear in audit log (metabase#16845 metabase-enterprise#486)", () => {
       cy.visit("/admin/audit/members/log");
 
       cy.findByText("Native")
@@ -38,6 +38,7 @@ describeWithToken("audit > ad-hoc", () => {
 
       cy.get(".PageTitle").contains("Query");
       cy.findByText("Open in Metabase");
+      cy.get(".ace_content").contains("SELECT 123");
     });
   });
 });