Ngoài SQL-StandardHệ thống đặc quyềnCó sẵn thông quaGrant, bảng có thể cóChính kèo chấp bóng đá hôm nay bảo mật hàngĐiều đó hạn chế, trên cơ sở người dùng mỗi người, các kèo chấp bóng đá hôm nay có thể được trả về bằng các truy vấn thông thường hoặc chèn, cập nhật hoặc xóa bởi các lệnh sửa đổi dữ liệu. Tính năng này còn được gọi là8798_8818. Theo mặc định, các bảng không có bất kỳ chính kèo chấp bóng đá hôm nay nào, do đó, nếu người dùng có quyền truy cập đặc quyền vào bảng theo hệ thống đặc quyền SQL, tất cả các hàng trong đó đều có sẵn để truy vấn hoặc cập nhật.
Khi bảo mật kèo chấp bóng đá hôm nay được bật trên bảng (vớiBảng thay đổi ... Kích hoạt bảo mật cấp kèo chấp bóng đá hôm nay), tất cả quyền truy cập bình thường vào bảng để chọn hàng hoặc sửa đổi hàng phải được chính kèo chấp bóng đá hôm nay bảo mật hàng cho phép. . Các hoạt động áp dụng cho toàn bộ bảng, chẳng hạn nhưcắt ngắn
vàTài liệu tham khảo
, không phải chịu bảo mật kèo chấp bóng đá hôm nay.
Các chính kèo chấp bóng đá hôm nay bảo mật hàng có thể dành riêng cho các lệnh hoặc vai trò hoặc cho cả hai. Chính kèo chấp bóng đá hôm nay có thể được chỉ định để áp dụng chotất cả
lệnh hoặc đếnChọn
, Chèn
, Cập nhật
hoặcXóa
. Nhiều vai trò có thể được gán cho một chính kèo chấp bóng đá hôm nay nhất định và được áp dụng thành viên và tư cách thành viên vai trò bình thường.
Để chỉ định các hàng nào có thể nhìn thấy hoặc có thể sửa đổi theo chính kèo chấp bóng đá hôm nay, một biểu thức được yêu cầu trả về kết quả boolean. Biểu thức này sẽ được đánh giá cho từng hàng trước mọi điều kiện hoặc chức năng đến từ truy vấn của người dùng. (Các ngoại lệ duy nhất cho quy tắc này làLeakproof
Các chức năng, được đảm bảo không rò rỉ thông tin; Trình tối ưu hóa có thể chọn áp dụng các chức năng như vậy trước khi kiểm tra bảo mật kèo chấp bóng đá hôm nay.) Các kèo chấp bóng đá hôm nay mà biểu thức không trả vềtrue
sẽ không được xử lý. Các biểu thức riêng biệt có thể được chỉ định để cung cấp kiểm soát độc lập đối với các hàng có thể nhìn thấy và các hàng được phép sửa đổi. Các biểu thức chính kèo chấp bóng đá hôm nay được chạy như một phần của truy vấn và với các đặc quyền của người dùng đang chạy truy vấn, mặc dù các chức năng bảo mật-definer có thể được sử dụng để truy cập dữ liệu không có sẵn cho người dùng gọi.
Superusers và vai trò vớiBypassrls
Thuộc tính luôn bỏ qua hệ thống bảo mật kèo chấp bóng đá hôm nay khi truy cập vào bảng. Chủ sở hữu bảng thường bỏ qua bảo mật kèo chấp bóng đá hôm nay, mặc dù chủ sở hữu bảng có thể chọn chịu sự bảo mật kèo chấp bóng đá hôm nay vớiBảng thay đổi ... lực lượng bảo mật cấp kèo chấp bóng đá hôm nay.
Kích hoạt và vô hiệu hóa bảo mật hàng, cũng như thêm các chính kèo chấp bóng đá hôm nay vào bảng, luôn luôn là đặc quyền của chủ sở hữu bảng.
Chính kèo chấp bóng đá hôm nay được tạo bằng cách sử dụngTạo chính kèo chấp bóng đá hôm nayLệnh, được thay đổi bằng cách sử dụngchính kèo chấp bóng đá hôm nay thay đổiLệnh và bỏ bằng cách sử dụngChính kèo chấp bóng đá hôm nay thảLệnh. Để bật và vô hiệu hóa bảo mật kèo chấp bóng đá hôm nay cho một bảng đã cho, hãy sử dụngBảng thay đổilệnh.
Mỗi chính kèo chấp bóng đá hôm nay có một tên và nhiều chính kèo chấp bóng đá hôm nay có thể được xác định cho một bảng. Vì các chính kèo chấp bóng đá hôm nay là dành riêng cho bảng, mỗi chính kèo chấp bóng đá hôm nay cho một bảng phải có một tên duy nhất. Các bảng khác nhau có thể có chính kèo chấp bóng đá hôm nay có cùng tên.
Khi nhiều chính kèo chấp bóng đá hôm nay áp dụng cho một truy vấn nhất định, chúng được kết hợp bằng cách sử dụnghoặc
(Đối với các chính kèo chấp bóng đá hôm nay cho phép, là mặc định) hoặc sử dụngvà
(cho các chính kèo chấp bóng đá hôm nay hạn chế). Điều này tương tự như quy tắc mà một vai trò nhất định có đặc quyền của tất cả các vai trò mà họ là thành viên của. Các chính kèo chấp bóng đá hôm nay cho phép so với hạn chế được thảo luận thêm bên dưới.
Như một ví dụ đơn giản, đây là cách tạo chính kèo chấp bóng đá hôm nay trêntài khoản
Mối quan hệ chỉ cho phép các thành viên củaNgười quản lý
vai trò của các kèo chấp bóng đá hôm nay truy cập và chỉ các kèo chấp bóng đá hôm nay tài khoản của họ:
13064_13280
Chính kèo chấp bóng đá hôm nay trên hoàn toàn cung cấp Avới kiểm tra
mệnh đề giống hệt với nó13415_13422
mệnh đề, để ràng buộc áp dụng cả hai cho các kèo chấp bóng đá hôm nay được chọn bởi một lệnh (để người quản lý không thểChọn
, Cập nhật
hoặcXóa
Các kèo chấp bóng đá hôm nay hiện tại thuộc về một trình quản lý khác) và các kèo chấp bóng đá hôm nay được sửa đổi bởi một lệnh (do đó các kèo chấp bóng đá hôm nay thuộc về một trình quản lý khác không thể được tạo thông quaChèn
hoặcCập nhật
).
Nếu không có vai trò nào được chỉ định hoặc tên người dùng đặc biệtcông khai
được sử dụng, sau đó chính kèo chấp bóng đá hôm nay áp dụng cho tất cả người dùng trên hệ thống. Để cho phép tất cả người dùng chỉ truy cập hàng của riêng họ trong mộtNgười dùng
Bảng, một chính kèo chấp bóng đá hôm nay đơn giản có thể được sử dụng:
Tạo chính kèo chấp bóng đá hôm nay user_policy trên người dùng Sử dụng (user_name = current_user);
Điều này hoạt động tương tự như ví dụ trước.
Để sử dụng một chính kèo chấp bóng đá hôm nay khác cho các hàng đang được thêm vào bảng so với các hàng có thể nhìn thấy, nhiều chính kèo chấp bóng đá hôm nay có thể được kết hợp. Cặp chính kèo chấp bóng đá hôm nay này sẽ cho phép tất cả người dùng xem tất cả các hàng trongngười dùng
Bảng, nhưng chỉ sửa đổi của riêng họ:
Tạo chính kèo chấp bóng đá hôm nay user_sel_policy trên người dùng Cho chọn Sử dụng (đúng); Tạo chính kèo chấp bóng đá hôm nay user_mod_policy trên người dùng Sử dụng (user_name = current_user);
trong AChọn
Lệnh, hai chính kèo chấp bóng đá hôm nay này được kết hợp bằng cách sử dụnghoặc
, với hiệu ứng ròng là tất cả các hàng có thể được chọn. Trong các loại lệnh khác, chỉ áp dụng chính kèo chấp bóng đá hôm nay thứ hai, để các hiệu ứng giống như trước đây.
15079_15124Bảng thay đổi
lệnh. Vô hiệu hóa bảo mật hàng không xóa bất kỳ chính kèo chấp bóng đá hôm nay nào được xác định trên bảng; Họ chỉ đơn giản là bị bỏ qua. Sau đó, tất cả các hàng trong bảng đều có thể nhìn thấy và có thể sửa đổi, tùy thuộc vào hệ thống đặc quyền SQL tiêu chuẩn.
Dưới đây là một ví dụ lớn hơn về cách tính năng này có thể được sử dụng trong môi trường sản xuất. BảngPasswd
Mô phỏng tệp mật khẩu Unix:
15588_17440
Như với bất kỳ cài đặt bảo mật nào, điều quan trọng là phải kiểm tra và đảm bảo rằng hệ thống đang hoạt động như mong đợi. Sử dụng ví dụ trên, điều này chứng minh rằng hệ thống quyền đang hoạt động tốt.
17681_19641
19651_19801HồihoặcxôngNhà điều hành Boolean. Mặc dù các chính kèo chấp bóng đá hôm nay cho phép có thể được xây dựng để chỉ cho phép truy cập vào các hàng trong các trường hợp dự định, nhưng có thể đơn giản hơn để kết hợp các chính kèo chấp bóng đá hôm nay cho phép với các chính kèo chấp bóng đá hôm nay hạn chế (mà các hồ sơ phải được thông qua và được kết hợp bằng cách sử dụngvàxôngNhà điều hành Boolean). Dựa trên ví dụ trên, chúng tôi thêm chính kèo chấp bóng đá hôm nay hạn chế để yêu cầu quản trị viên được kết nối qua ổ cắm unix cục bộ để truy cập các hồ sơ củaPasswd
Bảng:
Tạo chính kèo chấp bóng đá hôm nay admin_local_only trên passwd là hạn chế đối với quản trị viên Sử dụng (pg_catalog.inet_client_addr () là null);
Sau đó, chúng ta có thể thấy rằng một quản trị viên kết nối qua mạng sẽ không thấy bất kỳ bản ghi nào, do chính kèo chấp bóng đá hôm nay hạn chế:
20708_21132
Kiểm tra tính toàn vẹn tham chiếu, chẳng hạn như các ràng buộc chính hoặc chính và các tài liệu tham khảo khóa nước ngoài, luôn luôn bỏ qua bảo mật hàng để đảm bảo rằng tính toàn vẹn của dữ liệu được duy trì. Phải cẩn thận khi phát triển các lược đồ và chính kèo chấp bóng đá hôm nay cấp hàng để tránhMạnhKênh CovertHồirò rỉ thông tin thông qua kiểm tra tính toàn vẹn tham chiếu như vậy.
Trong một số bối cảnh, điều quan trọng là phải chắc chắn rằng bảo mật kèo chấp bóng đá hôm nay không được áp dụng. Ví dụ, khi lấy một bản sao lưu, nó có thể là thảm họa nếu bảo mật kèo chấp bóng đá hôm nay âm thầm khiến một số kèo chấp bóng đá hôm nay bị bỏ qua từ bản sao lưu. Trong tình huống như vậy, bạn có thể đặtRow_SecurityTham số cấu hình thànhTẮT
. Điều này không tự mình bỏ qua bảo mật hàng; Những gì nó làm là ném một lỗi nếu bất kỳ kết quả của bất kỳ truy vấn nào sẽ được lọc bởi một chính kèo chấp bóng đá hôm nay. Lý do cho lỗi sau đó có thể được điều tra và sửa chữa.
Trong các ví dụ trên, các biểu thức chính kèo chấp bóng đá hôm nay chỉ xem xét các giá trị hiện tại trong hàng sẽ được truy cập hoặc cập nhật. Đây là trường hợp đơn giản và hiệu suất tốt nhất; Khi có thể, tốt nhất là thiết kế các ứng dụng bảo mật hàng để hoạt động theo cách này. Nếu cần phải tham khảo các hàng khác hoặc các bảng khác để đưa ra quyết định chính kèo chấp bóng đá hôm nay, điều đó có thể được thực hiện bằng cách sử dụng phụ-Chọn
S hoặc các chức năng chứaChọn
s, trong các biểu thức chính kèo chấp bóng đá hôm nay. Tuy nhiên, hãy lưu ý rằng các truy cập như vậy có thể tạo ra các điều kiện cuộc đua có thể cho phép rò rỉ thông tin nếu không được chăm sóc. Ví dụ, hãy xem xét thiết kế bảng sau:
22830_24210
Bây giờ giả sử rằngAlice
muốn thay đổiBí mật hơiHồiThông tin, nhưng quyết định rằngMallory
24431_24502
Bắt đầu; Cập nhật người dùng đặt nhóm_id = 1 trong đó user_name = 'mallory'; Cập nhật thông tin đặt thông tin = 'Bí mật từ Mallory' trong đó group_id = 2; LÀM;
trông an toàn; Không có cửa sổ trong đóMallory
sẽ có thể xemMạnhBí mật từ MalloryChuỗi. Tuy nhiên, có một điều kiện cuộc đua ở đây. Nếu nhưMallory
24965_24995
Chọn * Từ thông tin trong đó nhóm_id = 2 để cập nhật;
và giao dịch của cô ấy ởĐọc cam kết
chế độ, cô ấy có thể nhìn thấyHồiBí mật từ MalloryHồi. Điều đó xảy ra nếu giao dịch của cô ấy đạt đếnThông tin
kèo chấp bóng đá hôm nay ngay sauAlice
's. Nó chặn chờAlice
S giao dịch để cam kết, sau đó tìm nạp nội dung kèo chấp bóng đá hôm nay được cập nhật nhờđể cập nhật
mệnh đề. Tuy nhiên, nó khôngkhôngTìm nạp một kèo chấp bóng đá hôm nay được cập nhật cho ẩnChọn
từngười dùng
, vì phụ đóChọn
không cóđể cập nhật
; Thay vào đóNgười dùng
25943_26065Mallory
Có một số cách xung quanh vấn đề này. Một câu trả lời đơn giản là sử dụngChọn ... để chia sẻ
trong Sub-Chọn
S trong các chính kèo chấp bóng đá hôm nay bảo mật hàng. Tuy nhiên, điều đó yêu cầu cấpCập nhật
Đặc quyền trên bảng được tham chiếu (ở đâyNgười dùng
) cho người dùng bị ảnh hưởng, có thể không mong muốn. (Nhưng một chính kèo chấp bóng đá hôm nay bảo mật hàng khác có thể được áp dụng để ngăn họ thực sự thực hiện đặc quyền đó; hoặc phụ-Chọn
có thể được nhúng vào chức năng xác định bảo mật.) Ngoài ra, sử dụng đồng thời khóa chia sẻ kèo chấp bóng đá hôm nay trên bảng được tham chiếu có thể đặt ra một vấn đề hiệu suất, đặc biệt là nếu các bản cập nhật của nó là thường xuyên. Một giải pháp khác, thực tế nếu các bản cập nhật của bảng được tham chiếu là không thường xuyên, là lấyAccess Exclusive
Khóa trên bảng được tham chiếu khi cập nhật nó, để không có giao dịch đồng thời nào có thể kiểm tra các giá trị kèo chấp bóng đá hôm nay cũ. Hoặc người ta chỉ có thể chờ tất cả các giao dịch đồng thời kết thúc sau khi thực hiện cập nhật bảng được tham chiếu và trước khi thực hiện các thay đổi dựa vào tình huống bảo mật mới.
Để biết thêm chi tiết, xemTạo chính kèo chấp bóng đá hôm nayvàBảng thay đổi.
Nếu bạn thấy bất cứ điều gì trong tài liệu không kèo chấp bóng đá hôm nay xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.