[第41回] 参照用・作業用権限へ異なるDBアカウントを接続する
2026年11月13日
注文確認者には参照だけ、状態変更者には必要な変更権限というようにDBアカウントを分けることがある。
今回は分けたDBアカウントをQueryPieの権限へ接続した。 Advanced Privilegeでは同じ接続でも権限別アカウントを指定できる。実際に変わるかと監査を確認した。
参照用と作業用を用意する
実習テーブル用に二つのアカウントを作った。 ep41_readerにはSELECTだけ、 ep41_operatorにはSELECT・UPDATEを付与した。41001はREADY、25000.00とした。
管理者画面の Databases → General → ConfigurationsでAdvanced Privilege Settingを有効にし、新規の DB Privilege Account Lab 接続のPrivilege Settingを開いた。

Read-Onlyはep41_reader、Read/Writeはep41_operatorを指定し、両方のTest Connection成功を確認して保存した。一接続内で区別が明確になった。

既存の用途別アカウントを引き継げる。管理者が対応を定め、利用者へ業務に合う権限を与える方式だ。
参照権限では参照アカウントが使われる
まずRead-Onlyを与えた。利用者側も確認でき、DBパスワードを入力せずConnectで開けた。

注文参照とともに CURRENT_USER()を確認した。MySQLの認証アカウントを示し、結果は ep41_reader@%で、状態と金額も準備どおりだった。

権限名だけでなく実アカウントまで見ると反映が明確だった。
作業権限に変えて再接続するとアカウントが変わる
切断後、同じ利用者の権限を Read/Writeにした。再接続して同SQLを使うとアカウントは ep41_operator@%へ変わった。

同じ接続でも付与権限でアカウントが変わり、両方のパスワードを配る必要がない点が便利だった。
続いて41001の状態を READYからCHECKEDへ変更した。1 Rows updatedで、再参照はCHECKED、金額25000.00は不変だった。

利用者と実DBアカウントが一緒に残る
管理者画面の DB Access HistoryにはDemo Developer、Read/Write、ep41_operatorがあり、以前の参照はRead-Only・ep41_readerだった。

Query AuditではUPDATE成功、人、時刻、Read/Write、Web Editorを確認した。

下部にはDB User、テーブル、SQLもあり、 誰がどの権限・DBアカウントで何のSQLを実行したか を続けて確認できた。

従来のアカウント分離を権限管理へつなげる
会社のDB運用とQueryPie権限を自然につなげ、参照・作業の分離を保ちながら担当業務へ適用できる点がよかった。
利用者は指定接続を使い、管理者は権限とアカウントをまとめる。実利用者と操作が監査へつながり、 分離の理由が接続・作業履歴にも明確に表れた。
QueryPie Community 11.6.7とMySQL 8.0.42で実習ユーザー・注文を使用した。
参考: Databases Configurations · DB Connections
![[第40回] DB権限を維持し、許可IPを定める](/assets/content/acp-lab-notes/database-ip-restrictions/01.webp)
![[第42回] 運用DB作業に二段階承認を付ける](/assets/content/acp-lab-notes/multi-step-approval/01.webp)