-- PII 컬럼명 패턴 정의 테이블
CREATE OR REPLACE TABLE production.governance.pii_patterns (
pattern STRING,
pii_type STRING,
description STRING
);
INSERT INTO production.governance.pii_patterns VALUES
('%email%', 'email', '이메일 주소'),
('%phone%', 'phone', '전화번호'),
('%mobile%', 'phone', '휴대폰 번호'),
('%ssn%', 'ssn', '주민등록번호'),
('%jumin%', 'ssn', '주민번호'),
('%birth%', 'birth_date', '생년월일'),
('%address%', 'address', '주소'),
('%card_number%', 'card', '카드번호'),
('%account_no%', 'account', '계좌번호');
-- 태그 미부착 PII 컬럼 식별 쿼리
SELECT
c.table_catalog,
c.table_schema,
c.table_name,
c.column_name,
p.pii_type,
CASE WHEN ct.tag_name IS NOT NULL THEN '태그 있음' ELSE '⚠️ 태그 누락' END AS status
FROM system.information_schema.columns c
CROSS JOIN production.governance.pii_patterns p
LEFT JOIN system.information_schema.column_tags ct
ON c.table_catalog = ct.catalog_name
AND c.table_schema = ct.schema_name
AND c.table_name = ct.table_name
AND c.column_name = ct.column_name
AND ct.tag_name = 'pii'
WHERE LOWER(c.column_name) LIKE p.pattern
AND c.table_catalog = 'production';