Tôi cần kiểm soát chặt chẽ việc đọc và ghi dữ liệu Postgres của mình. Chế độ xem có thể cập nhật luôn cung cấp khả năng đọc, kiểm soát dữ liệu của tôi rất tốt, nghiêm ngặt và cho phép tôi thêm các cột được tính có giá trị. Với Postgres 9.5, bảo mật mức hàng đã giới thiệu một cách mới và mạnh mẽ để kiểm soát dữ liệu của tôi. Nhưng tôi không thể sử dụng cả hai chế độ xem công nghệ và bảo mật mức hàng với nhau. Tại sao?Tại sao tính năng bảo mật cấp hàng không được bật cho chế độ xem Postgres?
Trả lời
Về cơ bản vì không thể thay đổi về cách hoạt động của chế độ xem. Tôi muốn có thể hỗ trợ SECURITY INVOKER
(hoặc tương đương) cho các chế độ xem nhưng theo như tôi biết không có tính năng như vậy hiện có.
Bạn có thể lọc quyền truy cập vào chế độ xem tự chụp với bảo mật hàng bình thường.
Các bảng được truy cập theo chế độ xem cũng sẽ áp dụng các quy tắc bảo mật hàng. Tuy nhiên, họ sẽ thấy current_user
là người sáng tạo chế độ xem vì các bảng truy cập chế độ xem (và các chế độ xem khác) với các quyền của người dùng đã tạo/sở hữu chế độ xem.
Có lẽ nó sẽ có giá trị nâng cao này trên pgsql-tin tặc nếu bạn sẵn sàng bước vào và giúp đỡ với sự phát triển của các tính năng bạn cần, hoặc pgsql chung nói cách khác?
Điều đó nói rằng, trong khi lượt xem truy cập bảng dưới dạng người dùng tạo và thay đổi current_user
tương ứng, chúng không ngăn bạn sử dụng GUC tùy chỉnh, session_user
hoặc thông tin theo ngữ cảnh khác trong chính sách bảo mật hàng. Bạn có thể sử dụng bảo mật hàng với chế độ xem, chỉ cần không (hữu ích) để lọc dựa trên current_user
.
Làm cách nào để thay đổi cách hoạt động của chế độ xem? Không phải RLS về cơ bản chỉ là bổ sung một số mệnh đề 'WHERE'? Và không phải là một cái nhìn về cơ bản chỉ là một câu lệnh SQL? – Calebmer
@Calebmer Xem các bảng truy cập được sử dụng bởi chế độ xem với quyền truy cập của người dùng đã tạo chế độ xem. Để cho phép bảo mật hàng để truy cập một cách hữu ích vào các bảng được truy cập thông qua một khung nhìn dựa trên người dùng "cấp cao nhất" đã truy cập khung nhìn sẽ yêu cầu thay đổi cách các khung nhìn truy cập các bảng trong khung nhìn sao cho 'current_user' không được thiết lập, v.v. 'session_user', nhưng điều đó không thay đổi khi bạn' SET SESSION AUTHORIZATION', vì vậy nó không hữu ích nếu bạn đang sử dụng kết nối gộp thông qua pgbouncer hoặc tương tự. –
Wow .. điều này thực sự cần được đề cập trong trang Tài liệu chính sách. Tôi vừa phát hiện ra vấn đề này trong ứng dụng của chúng ta nơi tất cả các bảng được tìm thấy trong một lược đồ riêng và chúng chỉ được cung cấp cho API bên ngoài thông qua một khung nhìn trong một lược đồ khác. Vì chế độ xem này được tạo bởi superuser, RLS đã bị hỏng hoàn toàn mặc dù nó đã được kiểm tra và hoạt động tốt so với bảng thực. – deinspanjer
- 1. Tại sao bật đường A20 ở Chế độ được bảo vệ?
- 2. Bật chế độ chỉnh sửa cho chỉ một hàng trong chế độ xem bảng
- 3. Tại sao chế độ xem của tôi không được vẽ?
- 4. Tại sao addSubview lại không giữ lại chế độ xem?
- 5. tìm hiểu xem chế độ tiết kiệm năng lượng đã được bật chưa - Android SDK
- 6. Bật tính năng chống răng cưa của chế độ xem mã trong XCode
- 7. Sử dụng GSON với tính năng bảo vệ được bật
- 8. Lập trình thay đổi thuộc tính sản phẩm ở cấp chế độ xem cửa hàng
- 9. Được bảo mật hơn và tại sao JSON hoặc XML
- 10. Tại sao len() không được triển khai cho Hàng đợi?
- 11. Trình xem phân cấp Android không hiển thị chỉ báo hiệu suất cho chế độ xem
- 12. Tại sao một IpcChannel cho tôi biết, "Không thể mở một mã thông báo bảo mật cấp ẩn danh?"
- 13. VS2017 - Các tính năng ngôn ngữ C# 7 không hoạt động trong chế độ xem MVC
- 14. Rủi ro bảo mật khi bật MSDTC
- 15. Tại sao không setVisibility hoạt động sau khi chế độ xem được làm động?
- 16. Cấp quyền SELECT trên một chế độ xem, nhưng không cho phép đối tượng bên dưới
- 17. Bật chế độ đảm bảo sẽ được gọi khi Activity không còn hoạt động?
- 18. Android - tại sao điều này cho tôi biết "Chế độ xem nội dung chưa được tạo"?
- 19. Chế độ xem thả không tồn tại
- 20. cách làm mới chế độ xem của chế độ xem hàng trước đó của chế độ xem tái chế
- 21. Xác định xem Chế độ trên máy bay có được bật trên iPhone không?
- 22. Trang web bảo mật trong Chế độ kiosk Chrome
- 23. Truy vấn đóng gói Postgres trong chế độ xem làm cho nó cực kỳ chậm
- 24. Làm cách nào để biết tính năng kiểm tra dữ liệu có được bật trong Postgres
- 25. Android: Nhiều chế độ xem cho chế độ xem tùy chỉnh với bố cục hiện tại
- 26. Bảo mật mức hàng trong kịch bản cơ sở dữ liệu khách hàng
- 27. Chặn các URL nhất định để bảo mật trong chế độ xem web trên Android
- 28. Tại sao ngắt cần phải được tắt trước khi chuyển sang chế độ bảo vệ từ chế độ thực?
- 29. Tại sao các chế độ xem được lập chỉ mục không có tổng hợp MAX()?
- 30. Tại sao xóa không được cho phép trong chế độ nghiêm ngặt Javascript5?
nếu bạn bật bảo mật cấp hàng trên bảng và sau đó sử dụng chế độ xem có thể cập nhật trên bảng, bảo mật có hoạt động không? – mehmet
Không vì truy vấn đi qua vai trò được xác định xem, không phải vai trò hiện tại. – Calebmer
Sau đó, cách thiết lập bảo mật mức hàng trên vai trò được xác định xem? – mehmet