scandock_ で始まる名前) を自動で作り、監視と調査にはそのユーザーだけを使います。管理者の接続文字列は暗号化して保存し、人が承認した SQL の対処を実行するときだけ使います。接続を削除すると、自動で作ったユーザーも削除します。登録のとき、Scandock はそのユーザーが書き込めないことを確かめます。書き込める権限が1つでもあると管理者の接続文字列として扱い、監視用のユーザーを作ろうとします。ユーザーを作る権限がなければ、登録できません。
db_owner・db_datawriter・db_ddladmin のロールと CREATE TABLE の権限を持たず、どのテーブルにも INSERT・UPDATE・DELETE の権限がないこと。読み取り専用の DB は、読み取り専用として扱います。CREATE ROLE scandock_ro LOGIN PASSWORD '強いパスワード';
GRANT CONNECT ON DATABASE app TO scandock_ro;
-- PostgreSQL 14 以降: すべてのスキーマのテーブルを読める
GRANT pg_read_all_data TO scandock_ro;
-- 実行中のクエリやロックなどの統計を見るため
GRANT pg_monitor TO scandock_ro;PostgreSQL 13 以前では pg_read_all_data が使えません。スキーマごとに USAGE と SELECT を与え、今後作るテーブルにも効くように既定の権限を設定します。既定の権限は、テーブルを作るロールで実行してください。
GRANT USAGE ON SCHEMA public TO scandock_ro;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO scandock_ro;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO scandock_ro;CREATE USER 'scandock_ro'@'%' IDENTIFIED BY '強いパスワード';
GRANT SELECT ON app.* TO 'scandock_ro'@'%';
-- 実行中のクエリを見るため
GRANT PROCESS ON *.* TO 'scandock_ro'@'%';
-- クエリごとの統計を見るため
GRANT SELECT ON performance_schema.* TO 'scandock_ro'@'%';sys スキーマがある場合は、GRANT SELECT ON sys.* も与えると、統計を読みやすくなります。
TiDB Cloud Serverless では、ユーザー名の先頭にクラスタの接頭辞が要ります (例: 4AbCdEf.scandock_ro)。
-- 監視する DB で実行
CREATE USER scandock_ro WITH PASSWORD = '強いパスワード';
ALTER ROLE db_datareader ADD MEMBER scandock_ro;
GRANT VIEW DATABASE STATE TO scandock_ro;-- master で実行
CREATE LOGIN scandock_ro WITH PASSWORD = '強いパスワード', CHECK_POLICY = ON;
GRANT VIEW SERVER STATE TO scandock_ro;
-- 監視する DB で実行
CREATE USER scandock_ro FOR LOGIN scandock_ro;
ALTER ROLE db_datareader ADD MEMBER scandock_ro;
GRANT VIEW DATABASE STATE TO scandock_ro;監視用の接続では、セッションも読み取り専用に固定します。AI が作るクエリは、1文の読み取りに限って実行します。
載っていないことは support@scandock.ai までお問い合わせください。
最終更新日: 2026年10月31日