Về cơ bản vì không thể thay đổi cách hoạt động của chế độ xem về trước. Tôi muốn có thể hỗ trợ SECURITY INVOKER
(hoặc tương đương) cho các lượt xem nhưng theo tôi biết thì hiện tại không có tính năng nào như vậy tồn tại.
Bạn có thể lọc quyền truy cập vào chế độ xem của chính nó với bảo mật hàng bình thường.
Các bảng được chế độ xem truy cập cũng sẽ được áp dụng các quy tắc bảo mật hàng của chúng. Tuy nhiên, họ sẽ thấy current_user
với tư cách là người tạo lượt xem bởi vì chế độ xem truy cập bảng (và các chế độ xem khác) với quyền của người dùng đã tạo / sở hữu chế độ xem.
Có lẽ bạn nên nêu điều này với tin tặc pgsql nếu bạn sẵn sàng tham gia và trợ giúp phát triển tính năng bạn cần hoặc pgsql-general nếu không?
Điều đó nói rằng, trong khi xem các bảng truy cập với tư cách là người dùng đang tạo và thay đổi current_user
do đó, 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 các 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 các chế độ xem, chỉ không (hữu ích) để lọc dựa trên current_user
.