Trao đổi về dự án
Dữ liệu và tuân thủ

PostgreSQL Anonymizer 3.2: bảo mật xử lý che giấu và chuẩn bị di chuyển vai trò

PostgreSQL Anonymizer 3.2 thay đổi bối cảnh các xử lý che giấu. Hãy xác minh phiên bản, đặc quyền, điều kiện tiên quyết và phục hồi trước khi di chuyển vai trò.

Rôles et traitements de masquage PostgreSQL.

PostgreSQL Anonymizer 3.2 sửa các vấn đề bảo mật và chặn che giấu được thực thi dưới quyền superuser. Vì vậy, một lần nâng cấp phải xem xét vai trò của các xử lý hiện có, bản sao lưu và kết quả của chúng, thay vì vô hiệu hóa bảo vệ để giữ các script cũ.

Xác định đúng ngày thông báo và thành phần

Thông cáo PostgreSQL Anonymizer 3.2 có ngày 4 tháng 9 năm 2026; PostgreSQL.org đăng lại ngày 9 tháng 9. Sự kiện là thông báo ngày 4 tháng 9, không giả định giờ khả dụng. PostgreSQL Anonymizer là một extension: các bản sửa và điều kiện tiên quyết của nó không mô tả chung cho toàn bộ PostgreSQL. [thông báo PostgreSQL.org]

Phiên bản 3.2 công bố việc chặn che giấu do superuser thực thi và quá trình chuyển dần từ pseudo_* sang seeded_*, theo thông báo của nhà phát hành.

Một báo cáo độc lập mô tả hai đường leo thang đặc quyền riêng biệt được tái lập trên 3.1.3: đường thứ nhất liên quan đến chủ sở hữu bảng mà không có tác nhân đặc quyền thứ hai; đường thứ hai yêu cầu một người vận hành đặc quyền nhập tệp quy tắc có nội dung bị kẻ tấn công tác động. Các điều kiện tiên quyết này không cho phép khẳng định có khai thác đang hoạt động, cũng không thiết lập mọi phiên bản bị ảnh hưởng. [báo cáo 665]

Kiểm kê các xử lý và vai trò

Vai trò là danh tính mà PostgreSQL gắn quyền hạn; superuser có các đặc quyền vượt quá vai trò ứng dụng thông thường. Pseudonymization thay thế một giá trị bằng giá trị khác để hạn chế việc nhận dạng trực tiếp. Tính xác định của nó nghĩa là với cùng tham số, cùng đầu vào có thể tạo cùng đầu ra; collision là trường hợp các đầu vào khác nhau tạo cùng một giá trị. Locale là tham số ngôn ngữ và vùng ảnh hưởng đến một số định dạng. Che giấu tĩnh sửa dữ liệu, replica tạo một bản sao và export tạo một tập bên ngoài: các chế độ này không được đánh giá bằng cùng quyền hạn.

Hãy bắt đầu bằng việc ghi chép phiên bản extension, chế độ che giấu và danh tính hiệu lực mà không thực thi xử lý nào hoặc sửa đổi cơ sở dữ liệu production. Không vô hiệu hóa anon.nosuperuser để vượt qua hàng rào mới.

Môi trườngPhiên bảnChế độVai trò hiệu lựcChủ sở hữuThao tácQuyền cần xác nhậnBằng chứng
Cần điềnCần xác minhTĩnh, replica hoặc exportCần xác minhCần chỉ địnhCần mô tảCần xác nhậnCần đính kèm
Kiểm kê vai trò và thao tác cần xác nhận trước nâng cấp PostgreSQL Anonymizer.
Quyền được đánh giá theo thao tác, không có công thức quyền phổ quát.

Đánh giá một vai trò chuyên biệt trong môi trường thử nghiệm

Quyền tối thiểu được suy ra từ các chức năng thực sự sử dụng và tài liệu của phiên bản đích; không có lệnh phân quyền phổ quát (GRANT) phù hợp với mọi xử lý. Một kế hoạch đề xuất, chưa được thực thi, bắt đầu bằng phục hồi thử nghiệm được phép và dữ liệu tổng hợp. Nó xác minh thực thi, lỗi, sao lưu và phục hồi, rồi giữ khả năng quay lại dựa trên một phục hồi đã xác nhận, không dựa trên vô hiệu hóa hàng rào hay chuyển đổi ngẫu hứng.

Kế hoạch này cũng gồm quan hệ, giá trị null, collision và lặp lại: xác minh một quan hệ còn dùng được, giá trị null giữ hành vi mong đợi, collision được đo lường và kết quả lặp lại phù hợp thuộc tính được tìm kiếm. Tính xác định không bảo đảm tính ẩn danh. [tài liệu các hàm]

Ví dụ hoàn toàn tổng hợp: ba người hư cấu P01, P02 và P03 lần lượt mang Personne_A, Personne_BPersonne_A trong trường tên; P03 có giá trị tùy chọn null. Hai đơn hàng hư cấu C01 và C02 liên kết với P01 và P02. Locale, cùng tham số và cùng giá trị khởi đầu (« seed ») được ghi lại cho các lần lặp. Không bản ghi nào trong số này là thật.

Trường hợpMong đợiBằng chứng
Quan hệ C01→P01 và C02→P02Tham chiếu nhất quán sau xử lýCHƯA THỰC THI
Giá trị null P03Hành vi được ghi chép và giữ lạiCHƯA THỰC THI
Collision Personne_A / Personne_BCollision được đo, không giả định là không cóCHƯA THỰC THI
Lặp lại cùng seed và tham sốKết quả so sánh cho tính xác định mong muốnCHƯA THỰC THI
Tên hàm cũ và mớiSo sánh mà không áp đặt bằng nhau về giá trịCHƯA THỰC THI
Ràng buộc schemaKết quả được kiểm soátCHƯA THỰC THI
Kiểm soát quan hệ, giá trị null, collision và lặp lại trên dữ liệu tổng hợp.
Các kiểm soát áp dụng cho dữ liệu tổng hợp, không bao giờ dựa trên kết quả ẩn danh được cho là bảo đảm.

Xử lý bản sửa như một thay đổi có kiểm soát

Họ mới seeded_* dần thay thế pseudo_*, vẫn được giữ để tương thích ở 3.2 nhưng đã deprecated, tức được dự định loại bỏ sau này. Không được giả định sự tương ứng giá trị giống hệt. Hãy xác minh locale, các hàm có sẵn và kết quả mong đợi trong phiên bản đích. [thông báo 3.2]

Kế hoạch đề xuất và chưa thực thi: kiểm kê; sao lưu cấu hình, vai trò và dữ liệu tổng hợp; phục hồi cô lập; xác nhận vai trò chuyên biệt; kiểm thử; quyết định dừng hoặc chuyển đổi; quay lại được kiểm chứng bằng phục hồi. Đây không phải là quay mù quáng về phiên bản extension cũ. Về khung liên tục và phục hồi, xem kế hoạch liên tục và phục hồi.

Chủ sở hữu xử lý xác định kết quả mong đợi; quản trị viên xác nhận quyền và phục hồi; đội ngũ dùng dữ liệu xác nhận các quan hệ và ràng buộc vẫn khai thác được. Một thất bại phục hồi, quyền không giải thích được hoặc dữ liệu không nhất quán sẽ tạm dừng chuyển đổi. Tập nhỏ này cho phép kiểm tra phương pháp: nó không đo nguy cơ collision tổng thể hoặc khả năng chống tái nhận dạng trên dữ liệu thực. Cần tham khảo tài liệu tương ứng phiên bản đã cài đặt; các trang latest có thể thay đổi.

Chia sẻ bài viết