이 훌륭한 플러그인의 문제는 아니지만, 이 데이터를 어떻게 가져올 수 있는지 아는 사람이 있을까요? 데이터 탐색기는 있지만 모든 데이터베이스 테이블의 구조를 알지 못하며, 어떤 테이블에서 데이터를 찾아야 하고 어떤 테이블을 조인해야 이 데이터를 얻을 수 있는지 모르겠습니다.
이전 게시물을 참고해 보십시오:
아니요, 해당 사이트 설정은 이미 활성화되어 있었고, 제가 이미 가지고 있는 데이터입니다.
하지만 Angus가 위에 쓴 것처럼, 여기에는 관리용 기록은 포함되어 있지 않습니다:
이제 저는 이러한 관리용 기록을 어떻게 추출할 수 있는지 보고 있습니다.
음, extended가 바로 그 뜻인 줄 알았어요. 실질적으로 내보낼 수 있는 모든 것을 포함하는 거니까요.
네, 맞습니다. 안타깝게도 이 질문에 대한 단순한 답은 없습니다. 위에서 설명한 바와 같이, 이러한 기록이 포함되지 않는 이유입니다. 특히 다음 내용을 유의하세요.
그럼에도 불구하고, 해당 사용자의 user_id를 포함하는 추가 기록을 수집하려면 다음 방법을 사용할 수 있습니다.
-
data explorer 플러그인을 설치합니다.
-
새로운 쿼리를 생성합니다(예: “추가 사용자 기록 (GDPR)”).
-
오른쪽의 스키마 탐색기에서 "user_id"를 검색하여 어떤 데이터베이스 테이블에 user_id가 포함되어 있는지 확인합니다. 일부 테이블은 이미 포함되어 있음을 볼 수 있습니다(첫 번째 게시물의 목록 + 두 번째 게시물에서 언급한 “user activity” 참고).
-
해당 사용자의
user_id를 결정합니다(/u/username.json에서 찾을 수 있습니다). -
포함하려는 각 추가 테이블에 대해,
user_id가 해당 ID와 일치하는 행을 추출하는 쿼리를 구성합니다. 예:select * from [table_name] where user_id = [user_id]
사용자의 ID를 포함하는 모든 기록을 다운로드하려 하기보다는, 각 “추가” 테이블을 개별적으로 검토하는 것을 권장합니다.
해당 기록에는 다른 사용자의 상충되는 이익과 관련된 정보나 기타 방식으로 민감한 정보가 포함되어 있을 수 있습니다. 불행히도 여기서는 "범위"에 대한 단일 답은 없습니다. 본인의 특정 책임 조합을 어떻게 해석하는지에 따라 그 판단을 내려야 합니다. GDPR은 여기서 유일한 관련 책임이 아닙니다. 사용자의 ID를 포함하는 모든 기록을 단순히 넘겨주어서는 안 됩니다.
사실, 이러한 추가 기록에 대한 관심의 동기가 무엇인지 다소 명확하지 않습니다. 이는 사용자가 요청한 것, 즉 이미 포함된 것 이상의 것을 의미합니까? 사용자가 요청하지 않았다면, 이를 유도하는 것은 무엇입니까? 위에서 제가 설명한 것과 다른 GDPR 하의 책임 해석입니까? 그렇다면 그 배경과 법적 근거에 대해 더 알고 싶습니다(이 플러그인에 해당 근거를 통합하는 것을 고려할 수도 있습니다).
네, 그렇습니다. 하지만 당연히 이 모든 정보를 그에게 제공하기는 어렵습니다. 특히 기록에 다른 사용자의 데이터도 포함되어 있는 경우 더욱 그렇습니다. 우리는 정말로 필요할 때를 대비해 이러한 추가 정보를 갖추어 두려는 것뿐입니다. 이 사용자에게 이 정보를 제공할 가능성은 거의 없으나, 해당 사용자가 당국에 문제를 제기할 것으로 예상되므로 당국에는 정보를 제공해야 할 수도 있습니다.
우리의 새로운 개인정보 보호 담당자(DPO)도 행정 기록은 아직 제공하지 않는 것이 좋겠다고 조언했습니다.
알겠습니다.
데이터 보호 책임자가 추가 기록이 필요하다고 판단하고 특정 테이블을 염두에 두고 있다면, 도움을 드리기 위해 더 구체적인 SQL 쿼리를 제공하겠습니다. 앞서 언급한 이유들로 인해, 사건의 맥락 밖에서 일반적인 조언으로 특정 추가 테이블을 지목하는 것은 적절하지 않다고 생각합니다.
그러나 이 사건의 진행 과정에서 특정 정보가 필요하게 된다면, 이 플러그인의 정신, 즉 Discourse 커뮤니티가 GDPR을 더 쉽게 준수할 수 있도록 돕는 취지에 부합하므로, pro bono(무보수)로 기꺼이 도와드리겠습니다. 만약 그런 상황이 발생하고 특정 테이블이 정해졌으며 SQL 쿼리 작성에 도움이 필요하시다면, meta에서 저에게 개인 메시지를 보내 주세요.
요약하자면, 저는 GDPR 하의 특정 사건에 대해 Discourse 커뮤니티에 즉각적인 기술적(법적이지 않은) 지원을 기꺼이 제공하겠습니다. 다만, 대부분의 사건에 합리적인 범위를 넘어선 일반적인 기준을 설정하지 않도록 주의하고 있습니다. 플러그인의 범위를 확장해야 한다는 유사한 법적 주장이 있다면, 이에 대해 열린 자세로 수용하겠습니다.
음, 저희 개인정보 보호 책임자가 현재로선 추가적인 행정 데이터를 추출할 필요가 없다고 말씀하셨습니다. 도움을 주셔서 정말 감사합니다. 필요할 경우 다시 연락드리겠습니다.
이 플러그인은 정말 훌륭합니다!
GDPR의 정보주체 접근 요청을 처리하는 일은 정말 골치 아픈 일이고, 시간을 엄청나게 잡아먹습니다. 이 플러그인이 그런 문제를 훨씬 더 자신감 있게 처리할 수 있게 도와주네요. 감사합니다.
기능 추가에 대한 계획이 있을까요? 특히 데이터 보존 및 최소화 원칙에서 좀 고전하고 있습니다. 구체적으로는 '행정 기록’을 최소화하는 데 관심이 있습니다. 팀 영역의 속삭임과 게시물에는 IP 주소 등 수동으로 선별하고 검색해야 하는 개인 식별 데이터가 포함될 수 있기 때문입니다. 5년이 지나면 감사할 데이터가 너무 많고, 오래된 메시지는 가치가 거의 없어서 이를 영구적으로 삭제하고 싶습니다. 사실 그런 메시지와 속삭임에 대해 6개월만 보존하는 정책을 적용하고 싶습니다.
rake를 사용해 항목을 선택하고 삭제할 수는 있지만, 단순히 삭제된 것으로 표시될 뿐 데이터베이스에는 여전히 남아 있습니다. ![]()
그래서 저는 ‘소거기(obliterator)’ 플러그인에 대해 생각해 보았습니다. 이 플러그인은 삭제된 게시물의 원본 텍스트와 렌더링된 텍스트를 '이 메시지는 소거되었습니다’와 같은 내용으로 변경하거나, (더 좋게는) 게시물을 완전히 분리하여 제거하는 방식이 될 것입니다. ruby나 플러그인을 작성해 본 적이 없어서 시작하기에는 이상적인 상태는 아니지만, 직접 데이터베이스에 SQL을 실행하고 나중에 rake를 사용해 검색 인덱스를 다시 구축하는 방식으로 해결할 수도 있을 것 같습니다.
@angus - 법적 고려 사항에서 GDPR의 데이터 보존 측면에 대해 어떤 생각을 가지고 계신지, 그리고 어떻게 처리하고 계신지 궁금합니다.
흥미롭네요!
해당 기능을 추가하는 데에 열려 있습니다. 조금 더 조사한 후 더 깊이 고민해 보겠습니다.
사용 사례의 관련 세부 사항과 수집한 기타 조사 결과를 모두 기재한 상세한 기능 요청서를 작성해 주시겠어요? (플러그인 단계에서 "Legal Tools"를 선택) 이후 저는 배경 조사를 좀 더 진행한 후 후속 조치를 취하겠습니다.
이 플러그인은 아직 유지보수되고 있나요?
플러그인을 활성화하려면 설정을 전환해야 하는데, 어떻게 해야 하는지 모르겠어요 ![]()
니크야, 다음 주에 한번 확인해볼게.
정말 감사합니다! ![]()
안녕하세요, 이 내용을 우연히 발견했는데, 이 중 이미 코어에 포함되어 있거나 포함될 예정인 부분이 얼마나 되는지 궁금합니다.
어제보다 이전 시점에 무언가 깨진 것 같습니다.
사용자를 승인할 수 없고 /admin/users/5996.json과 같은 페이지를 로드할 수 없습니다.
plugins/discourse-legal-tools/lib/export_csv_file_extension.rb:41:in `can_export_entity?'
app/serializers/admin_detailed_user_serializer.rb:189:in `include_latest_export?'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'
(eval at /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):74:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
app/controllers/application_controller.rb:499:in `serialize_data'
app/controllers/application_controller.rb:508:in `render_serialized'
app/controllers/admin/users_controller.rb:48:in `show'
actionpack (8.0.4) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
네, 꽤 오랫동안 깨져 있는 상태였습니다. 요즘에는 대부분의 기능이 코어에 포함되어 있습니다.
broken 태그를 추가하겠습니다.