리소스

/

ACP 실습 노트

[36편] 조회는 허용하고 파일 내보내기는 따로 관리해봤다

DB 접근 제어

2026년 11월 9일

배송 상태를 확인하는 업무는 화면에서 주문을 조회하는 것으로 충분할 때가 있다. 조회한 데이터를 파일로 내려받는 기능은 업무에 따라 따로 허용하고 싶었다.

 

이번에는 QueryPie 웹 SQL 에디터에서 조회 권한과 파일 내보내기 권한을 나눠 봤다. 먼저 주문 세 건을 CSV로 내려받은 다음, 같은 권한에서 Can Export만 끄고 조회 화면이 어떻게 달라지는지 확인했다.

 

 

조회와 파일 내보내기를 함께 허용했다

 

실습용 연결은 Web Export Lab, 권한 이름은 Lab - Web Export Control로 만들었다. SQL 항목에서 Select를 선택하고, Functions에서는 Can Export를 켰다. Can Import와 Can Copy To Clipboard는 꺼 둔 상태였다.

 

화면 1. 사용자 화면에서도 Select와 Can Export가 허용된 것을 확인했다.
화면 1. 사용자 화면에서도 Select와 Can Export가 허용된 것을 확인했다.

 

Demo Developer에게 이 연결의 권한을 부여하고 웹 SQL 에디터로 접속했다. 앞선 실습에서 사용한 가상 주문 세 건을 대상으로 진행했다.

 

 

CSV를 내려받아 주문 세 건을 확인했다

 

주문번호 27001, 27002, 27003의 상태와 금액을 조회했다. 세 행이 정상적으로 나왔고, 에디터에서 Export 메뉴도 사용할 수 있었다.

 

화면 2. 주문 세 건을 조회한 뒤 Export 메뉴로 파일 내보내기를 진행했다.
화면 2. 주문 세 건을 조회한 뒤 Export 메뉴로 파일 내보내기를 진행했다.

 

Export에서 CSV File을 선택했다. 첫 행에 필드명을 넣는 옵션을 확인하고 내보내기를 실행했다.

 

화면 3. CSV 형식과 첫 행의 필드명 포함 옵션을 확인했다.
화면 3. CSV 형식과 첫 행의 필드명 포함 옵션을 확인했다.

 

다운로드된 ZIP 안에는 export.csv가 들어 있었다. 실제 파일을 열어 보니 첫 행에 order_id, status, total_amount가 있었고, 그 아래로 주문 세 건이 나왔다. 주문 27002의 SHIPPED와 18500.00을 비롯해 세 주문의 상태와 금액이 조회 화면과 모두 일치했다.

 

화면 4. 실제 내려받은 CSV에 필드명과 주문 세 건이 정확히 들어 있었다.
화면 4. 실제 내려받은 CSV에 필드명과 주문 세 건이 정확히 들어 있었다.

 

 

같은 권한에서 Can Export만 껐다

 

CSV 확인을 마친 뒤 실습 연결을 끊고, 관리자 화면에서 Lab - Web Export Control을 다시 열었다. Select는 유지하고 Can Export만 해제한 뒤 저장했다. 조회 대상이나 SQL 권한은 바꾸지 않았다.

 

화면 5. Select는 그대로 두고 파일 내보내기 권한만 해제했다.
화면 5. Select는 그대로 두고 파일 내보내기 권한만 해제했다.

 

설정을 저장한 뒤 Demo Developer로 새로 접속했다. 앞에서 사용한 SQL을 그대로 실행해 주문번호와 상태, 금액을 다시 조회했다.

 

 

주문은 그대로 보였고, Export는 비활성화됐다

 

조회 결과에는 같은 주문 세 건이 나왔다. 달라진 부분은 내보내기 메뉴였다. 상단의 Export는 회색으로 표시됐고, 결과 그리드의 Export 항목도 비활성화돼 메뉴를 열 수 없었다.

 

화면 6. 새로 접속한 뒤에도 주문 조회는 가능했고, 웹 Export 메뉴는 비활성화됐다.
화면 6. 새로 접속한 뒤에도 주문 조회는 가능했고, 웹 Export 메뉴는 비활성화됐다.

 

그 상태에서 같은 조회를 한 번 더 실행해도 결과가 정상적으로 나왔다. 주문을 확인하는 업무는 계속할 수 있었고, 웹 에디터에서 파일로 내려받는 기능은 별도 권한에 따라 사용할 수 없게 됐다.

 

 

파일을 내보낸 기록도 확인했다

 

Query Audit에서 Demo Developer와 Web Export Lab을 골라 봤다. 이번에 실행한 조회 세 건과 파일 내보내기 한 건, 총 네 건이 모였다.

 

CSV를 내려받은 시각의 기록은 Export Data로 구분돼 있었다. 상세에서 사용자, 연결, Lab - Web Export Control 권한과 실행 경로 Web Editor를 확인했다. 대상 테이블과 SQL, 성공 결과도 함께 볼 수 있었다.

 

화면 7. 실제 CSV 내보내기가 Export Data로 기록됐고, 사용자와 대상 SQL을 함께 확인할 수 있었다.
화면 7. 실제 CSV 내보내기가 Export Data로 기록됐고, 사용자와 대상 SQL을 함께 확인할 수 있었다.

 

필요한 주문은 계속 조회하면서, 웹의 파일 내보내기만 별도 권한으로 정할 수 있었다. 실제 내보내기 기록도 함께 확인할 수 있어, 담당자의 업무에 맞게 웹 에디터 사용 범위를 관리하기 좋았다.

 

실습은 QueryPie Community 11.6.7과 MySQL 8.0.42의 웹 SQL 에디터에서 진행했다. 사용자와 주문은 모두 실습용이다. 확인을 마친 뒤 이번 연결에 부여한 권한을 회수했으며, 기존 데이터와 연결 권한은 그대로 유지했다.

 

참고: Privilege Type · 웹 SQL 에디터 · Query Audit