Đặc quyền LISTEN / THÔNG BÁO


9

Tôi có một cơ sở dữ liệu postgres, với hai người dùng; Alice và Bob.

Tôi muốn có thể làm điều đó NOTIFY alice_channel 'sensitive data'mà không cần Bob có thể lén lút LISTENchỉ bằng cách đoán rằng tên kênh là 'alice_channel'.

Trên thực tế những tên kênh rất khó đoán, nhưng điều này là bảo mật thông qua tối tăm lúc tốt nhất.

Tôi có đúng không khi tin rằng không có cách nào ngăn người dùng cơ sở dữ liệu sử dụng (lạm dụng) LISTEN& NOTIFY? tức là dường như không có bất kỳ đặc quyền liên quan nào có thể được cấp hoặc thu hồi.

Đây có phải là một ngõ cụt?


Tôi không biết cách để loại trừ người dùng nghe. Nhưng nếu bạn chọn một tên cho kênh như bạn sẽ chọn một mật khẩu an toàn, điều này có làm được không?
Erwin Brandstetter

Vâng, đó là những gì tôi đang làm vào lúc này (sử dụng các chuỗi ngẫu nhiên lớn), nhưng nó cảm thấy bẩn và khá hạn chế. Có một số điều khá thú vị tôi có thể làm với LISTEN/ NOTIFYnếu tôi có thể khóa nó lại một chút. Vì nó là một ứng dụng "chọc một khách hàng" để thăm dò lại tất cả các dữ liệu mà bạn 'có thể cần ".
Chris Farmiloe

Tôi chỉ muốn biết nếu mọi thứ đã thay đổi kể từ khi điều này được trả lời. Bạn có thể thực hiện một cái gì đó?
Phill Pafford

Nếu bạn không thể tin tưởng vào ứng dụng của mình, bạn không nên cho chúng vào. Tôi nghĩ đó là ngõ cụt trong hệ thống sản xuất. Đã có đề xuất mặc dù cho tư nhân liên quan. postgresql.org/message-id/51CC98FB.9040700%40agliodbs.com
Anssi

Câu trả lời:


4

Không có quyền trên LISTENNOTIFY. Sẽ không có ý nghĩa gì nếu có sự hỗ trợ cho thông báo tải trọng được giới thiệu trong các phiên bản gần đây hơn.

Nếu bạn muốn kiểm soát truy cập, hãy tạo một bảng có thông tin mà bạn muốn và sau đó gửi một bảng NOTIFYtrống hoặc không có gì ngoài khóa chính cho bảng đó trong đó. SELECT(các) hàng quan tâm từ bảng, có thể có kiểm soát truy cập, để lấy dữ liệu nhạy cảm. Đây từng là cách duy nhất để sử dụng LISTENNOTIFYgửi dữ liệu cụ thể trước khi tải trọng được thêm vào.


Cảm ơn Craig tôi đã nghĩ rất nhiều. Tôi có thể xem qua nguồn và xem nó sẽ khó thực hiện đến mức nào nhưng tôi đoán nó sẽ yêu cầu một cấp độ cơ sở dữ liệu hoàn toàn mới AclModepg_database_aclcheckgọi ở đâu đó, đã một thời gian kể từ khi tôi nhìn: /
Chris Farmiloe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.