Tạo kèo bóng đá c1 - Xác định kèo bóng đá c1 bảo mật cấp hàng mới cho bảng
Tạo kèo bóng đá c1tên
trênTable_Name
[như cho phép | Hạn chế] [Cho tất cả | Chọn | Chèn | Cập nhật | XÓA BỎ ] [ ĐẾNROME_NAME
| Công khai | Current_user | Session_user [, ...]] [Sử kèo bóng đá c1 (sử dụng_expression
)]] [Với kiểm tra (Check_expression
)]
TheTạo kèo bóng đá c1
Lệnh xác định kèo bóng đá c1 bảo mật cấp hàng mới cho bảng. Lưu ý rằng bảo mật cấp hàng phải được bật trên bảng (sử dụngBảng thay đổi ... Kích hoạt bảo mật cấp hàng
) Để áp dụng các kèo bóng đá c1 được tạo ra.
Một kèo bóng đá c1 cấp cho phép chọn, chèn, cập nhật hoặc xóa các hàng phù hợp với biểu thức kèo bóng đá c1 có liên quan. Các hàng bảng hiện có được kiểm tra đối với biểu thức được chỉ định trongSử kèo bóng đá c1
, trong khi các hàng mới sẽ được kèo bóng đá c1 quaChèn
hoặcCập nhật
được kiểm tra đối với biểu thức được chỉ định trongvới kiểm tra
. Khi ASử kèo bóng đá c1
Biểu thức trả về true cho một hàng đã cho sau đó hàng đó có thể hiển thị cho người dùng, trong khi nếu sai hoặc null được trả về thì hàng không hiển thị. Khi Avới kiểm tra
9952_10083
choChèn
vàCập nhật
câu lệnh,với kiểm tra
Biểu thức được thi hành sautrước
Trình kích hoạt được bắn và trước khi bất kỳ sửa đổi dữ liệu thực tế nào được thực hiện. Do đó Atrước hàng
Trigger có thể sửa đổi dữ liệu sẽ được chèn, ảnh hưởng đến kết quả của kiểm tra kèo bóng đá c1 bảo mật.với kiểm tra
Biểu thức được thực thi trước mọi ràng buộc khác.
10603_10770
kèo bóng đá c1 có thể được áp dụng cho các lệnh cụ thể hoặc cho các vai trò cụ thể. Mặc định cho các kèo bóng đá c1 mới được tạo là chúng áp dụng cho tất cả các lệnh và vai trò, trừ khi có quy định khác. Nhiều kèo bóng đá c1 có thể áp dụng cho một lệnh duy nhất; Xem bên dưới để biết thêm chi tiết.Bảng 241Tóm tắt cách các loại kèo bóng đá c1 khác nhau áp dụng cho các lệnh cụ thể.
Đối với các kèo bóng đá c1 có thể có cảSử kèo bóng đá c1
vàvới kiểm tra
Biểu thức (tất cả
vàCập nhật
11463_11474với kiểm tra
Biểu thức được xác định, sau đósử kèo bóng đá c1
Biểu thức sẽ được sử kèo bóng đá c1 cả hai để xác định các hàng nào có thể nhìn thấy (Bình thườngSử kèo bóng đá c1
trường hợp) và kèo bóng đá c1 hàng mới nào sẽ được phép thêm (với kiểm tra
trường hợp).
Nếu bảo mật cấp hàng được bật cho bảng, nhưng không có kèo bóng đá c1 áp dụng nào tồn tại, Amặc định từ chốiHồikèo bóng đá c1 được giả định, để không có hàng nào được hiển thị hoặc cập nhật.
tên
Tên của kèo bóng đá c1 sẽ được tạo. Điều này phải khác biệt với tên của bất kỳ kèo bóng đá c1 nào khác cho bảng.
Table_Name
Tên (tùy chọn Lược đồ theo trình độ) của bảng kèo bóng đá c1 áp dụng cho.
cho phép
Chỉ định rằng kèo bóng đá c1 sẽ được tạo dưới dạng kèo bóng đá c1 cho phép. Tất cả các kèo bóng đá c1 cho phép được áp dụng cho một truy vấn nhất định sẽ được kết hợp với nhau bằng cách sử dụng booleanMạnhhoặcHồi12839_12988
13042_13055
Chỉ định rằng kèo bóng đá c1 sẽ được tạo ra dưới dạng kèo bóng đá c1 hạn chế. Tất cả các kèo bóng đá c1 hạn chế được áp dụng cho một truy vấn nhất định sẽ được kết hợp với nhau bằng cách sử dụng booleanvàHồitoán tử. Bằng cách tạo các kèo bóng đá c1 hạn chế, quản trị viên có thể giảm tập hợp các bản ghi có thể được truy cập vì tất cả các kèo bóng đá c1 hạn chế phải được thông qua cho mỗi hồ sơ.
13492_13910
lệnh
Lệnh áp dụng kèo bóng đá c1. Các tùy chọn hợp lệ làtất cả
, Chọn
, Chèn
, Cập nhật
vàXóa
. tất cả
là mặc định. Xem bên dưới để biết thông tin cụ thể về cách áp kèo bóng đá c1 chúng.
ROME_NAME
Vai trò mà kèo bóng đá c1 sẽ được áp dụng. Mặc định làcông khai
, sẽ áp dụng kèo bóng đá c1 cho tất cả các vai trò.
sử dụng_expression
bất kỳSQLBiểu thức có điều kiện (trả vềBoolean
14834_15169Chọn
) và sẽ không khả kèo bóng đá c1 để sửa đổi (trong mộtCập nhật
hoặcXóa
). Những hàng như vậy được áp kèo bóng đá c1 âm thầm; Không có lỗi được báo cáo.
Check_expression
bất kỳSQLBiểu thức có điều kiện (trả vềBoolean
). Biểu thức có điều kiện không thể chứa bất kỳ chức năng tổng hợp hoặc cửa sổ nào. Biểu thức này sẽ được sử kèo bóng đá c1 trongChèn
vàCập nhật
15798_16097Check_expression
được đánh giá dựa trên kèo bóng đá c1 nội dung mới được đề xuất của hàng chứ không phải nội dung gốc.
tất cả
sử kèo bóng đá c1tất cả
Đối với một kèo bóng đá c1 có nghĩa là nó sẽ áp dụng cho tất cả các lệnh, bất kể loại lệnh. Nếu mộttất cả
kèo bóng đá c1 tồn tại và các kèo bóng đá c1 cụ thể hơn tồn tại, sau đó cảtất cả
kèo bóng đá c1 và kèo bóng đá c1 cụ thể hơn (hoặc kèo bóng đá c1) sẽ được áp dụng. Ngoài ra,tất cả
kèo bóng đá c1 sẽ được áp dụng cho cả phía lựa chọn của một truy vấn và phía sửa đổi, sử dụngsử kèo bóng đá c1
Biểu thức cho cả hai trường hợp nếu chỉ Asử kèo bóng đá c1
Biểu thức đã được xác định.
làm ví dụ, nếuCập nhật
được ban hành, sau đó làtất cả
kèo bóng đá c1 sẽ được áp dụng cho cả những gìCập nhật
Sẽ có thể chọn làm hàng sẽ được cập nhật (áp kèo bóng đá c1Sử kèo bóng đá c1
Biểu thức) và đến các hàng được cập nhật kết quả, để kiểm tra xem chúng có được phép thêm vào bảng không (áp kèo bóng đá c1với kiểm tra
Biểu thức, nếu được xác định vàSử kèo bóng đá c1
Biểu thức khác). Nếu mộtChèn
hoặcCập nhật
Lệnh cố gắng thêm hàng vào bảng không vượt quatất cả
kèo bóng đá c1với kiểm tra
Biểu thức, toàn bộ lệnh sẽ bị hủy bỏ.
Chọn
Sử kèo bóng đá c1Chọn
Đối với kèo bóng đá c1 có nghĩa là nó sẽ áp dụng choChọn
Truy vấn và bất cứ khi nàoChọn
quyền được yêu cầu đối với mối quan hệ kèo bóng đá c1 được xác định. Kết quả là chỉ những bản ghi đó từ mối quan hệ vượt quaChọn
kèo bóng đá c1 sẽ được trả lại trong thời gianChọn
Truy vấn và truy vấn đó yêu cầuChọn
Quyền, chẳng hạn nhưCập nhật
, cũng sẽ chỉ thấy những bản ghi được cho phép bởiChọn
kèo bóng đá c1. MỘTChọn
18722_18746với kiểm tra
Biểu thức, vì nó chỉ áp kèo bóng đá c1 trong trường hợp các bản ghi được lấy từ mối quan hệ.
Chèn
sử kèo bóng đá c1Chèn
Đối với một kèo bóng đá c1 có nghĩa là nó sẽ áp dụng choChèn
lệnh. Hàng được chèn không thông qua kèo bóng đá c1 này sẽ dẫn đến lỗi vi phạm kèo bóng đá c1 và toàn bộChèn
Lệnh sẽ bị hủy bỏ. MỘTChèn
kèo bóng đá c1 không thể cósử kèo bóng đá c1
Biểu thức, vì nó chỉ áp kèo bóng đá c1 trong trường hợp các bản ghi được thêm vào quan hệ.
Lưu ý rằngChèn
vớitrên xung đột do cập nhật
Kiểm traChèn
kèo bóng đá c1 'với kiểm tra
Biểu thức chỉ cho kèo bóng đá c1 hàng được nối với mối quan hệ củaChèn
đường dẫn.
Cập nhật
sử kèo bóng đá c1Cập nhật
Đối với một kèo bóng đá c1 có nghĩa là nó sẽ áp dụng choCập nhật
, Chọn để cập nhật
vàChọn để chia sẻ
kèo bóng đá c1 lệnh, cũng như phụ trợVề xung đột do cập nhật
mệnh đề củaChèn
lệnh. TừCập nhật
Liên quan đến việc kéo một bản ghi hiện có và thay thế nó bằng một bản ghi được sửa đổi mới,Cập nhật
kèo bóng đá c1 chấp nhận cả ASử kèo bóng đá c1
Biểu thức và Avới kiểm tra
Biểu thức. Thesử kèo bóng đá c1
Biểu thức xác định bản ghi nàoCập nhật
Lệnh sẽ thấy để hoạt động chống lại, trong khiVới kiểm tra
Biểu thức xác định kèo bóng đá c1 hàng sửa đổi nào được phép được lưu trữ trở lại vào mối quan hệ.
Bất kỳ hàng nào có giá trị cập nhật không vượt quavới kiểm tra
Biểu thức sẽ gây ra lỗi và toàn bộ lệnh sẽ bị hủy bỏ. Nếu chỉ mộtSử kèo bóng đá c1
mệnh đề được chỉ định, sau đó mệnh đề đó sẽ được sử kèo bóng đá c1 cho cả haiSử kèo bóng đá c1
vàvới kiểm tra
trường hợp.
Thông thường làCập nhật
Lệnh cũng cần đọc dữ liệu từ kèo bóng đá c1 cột trong mối quan hệ được cập nhật (ví dụ: trong AWHERE
mệnh đề hoặc ATrở về
mệnh đề hoặc trong một biểu thức ở phía bên phải củaset
mệnh đề). Trong trường hợp này,Chọn
Quyền cũng được yêu cầu đối với mối quan hệ được cập nhật và thích hợpChọn
hoặctất cả
kèo bóng đá c1 sẽ được áp dụng ngoàiCập nhật
kèo bóng đá c1. Do đó, người dùng phải có quyền truy cập vào (các) hàng được cập nhật thông quaChọn
hoặctất cả
kèo bóng đá c1 ngoài việc được cấp phép cập nhật (các) hàng thông quaCập nhật
hoặctất cả
kèo bóng đá c1.
Khi mộtChèn
Lệnh có phụ trợtrên xung đột do cập nhật
mệnh đề, nếuCập nhật
Đường dẫn được thực hiện, hàng sẽ được cập nhật trước tiên được kiểm tra đối vớisử kèo bóng đá c1
Biểu thức của bất kỳCập nhật
kèo bóng đá c1, và sau đó hàng cập nhật mới được kiểm tra đối vớivới kiểm tra
Biểu thức. Tuy nhiên, lưu ý rằng không giống như độc lậpCập nhật
lệnh, nếu hàng hiện tại không vượt quaSử kèo bóng đá c1
Biểu thức, một lỗi sẽ được ném (TheCập nhật
đường dẫn sẽkhông bao giờHãy tránh im lặng).
Xóa
Sử kèo bóng đá c1Xóa
Đối với kèo bóng đá c1 có nghĩa là nó sẽ áp dụng choXóa
lệnh. Chỉ các hàng vượt qua kèo bóng đá c1 này sẽ được nhìn thấy bởiXóa
lệnh. Có thể có kèo bóng đá c1 hàng có thể nhìn thấy thông quaChọn
không có sẵn để xóa, nếu chúng không vượt quaSử kèo bóng đá c1
Biểu thức choXóa
kèo bóng đá c1.
Trong hầu hết kèo bóng đá c1 trường hợp AXóa
Lệnh cũng cần đọc dữ liệu từ kèo bóng đá c1 cột trong mối quan hệ mà nó đang xóa khỏi (ví dụ: trong AWHERE
mệnh đề hoặc ATrở về
mệnh đề). Trong trường hợp này,Chọn
Quyền cũng được yêu cầu đối với mối quan hệ và thích hợpChọn
hoặctất cả
kèo bóng đá c1 sẽ được áp dụng ngoàiXóa
kèo bóng đá c1. Do đó, người dùng phải có quyền truy cập vào (các) hàng bị xóa thông quaChọn
hoặctất cả
kèo bóng đá c1 ngoài việc được cấp phép để xóa (các) hàng thông qua AXóa
hoặctất cả
kèo bóng đá c1.
AXóa
kèo bóng đá c1 không thể cóvới kiểm tra
Biểu thức, vì nó chỉ áp kèo bóng đá c1 trong trường hợp các bản ghi bị xóa khỏi mối quan hệ, để không có hàng mới để kiểm tra.
Bảng 241. kèo bóng đá c1 được áp dụng theo loại lệnh
lệnh | Chọn/Tất cả kèo bóng đá c1 |
Chèn/tất cả kèo bóng đá c1 |
Cập nhật/Tất cả kèo bóng đá c1 |
xóa/tất cả kèo bóng đá c1 |
|
---|---|---|---|---|---|
Sử kèo bóng đá c1 biểu thức |
Với biểu thức kiểm tra |
Sử kèo bóng đá c1 biểu thức |
Với biểu thức kiểm tra |
Sử kèo bóng đá c1 biểu thức |
|
Chọn |
hàng hiện tại | - | - | - | - |
Chọn để cập nhật/chia sẻ |
hàng hiện tại | - | hàng hiện tại | - | - |
Chèn |
- | hàng mới | - | - | - |
Chèn ... Trả về |
hàng mới[A] | hàng mới | - | - | - |
Cập nhật |
hàng hiện tại & mới[A] | 26301_26304 | hàng hiện tại | hàng mới | - |
Xóa |
hàng hiện tại[A] | - | - | - | Hàng hiện tại |
trên xung đột do cập nhật |
hàng hiện tại & mới | - | hàng hiện tại | hàng mới | - |
[A]Nếu cần đọc quyền truy cập vào hàng hiện tại hoặc hàng mới (ví dụ: A |
Khi nhiều kèo bóng đá c1 của các loại lệnh khác nhau áp dụng cho cùng một lệnh (ví dụ:Chọn
vàCập nhật
kèo bóng đá c1 được áp dụng cho mộtCập nhật
27551_27828và
toán tử.
Khi nhiều kèo bóng đá c1 của cùng loại lệnh áp dụng cho cùng một lệnh, thì phải có ít nhất mộtcho phép
kèo bóng đá c1 cấp quyền truy cập vào mối quan hệ và tất cả cácHạn chế
kèo bóng đá c1 phải thông qua. Vì vậy, tất cảcho phép
Biểu thức kèo bóng đá c1 được kết hợp bằng cách sử dụnghoặc
, tất cảHạn chế
Biểu thức kèo bóng đá c1 được kết hợp bằng cách sử dụngvà
và kết quả được kết hợp bằng cách sử kèo bóng đá c1và
. Nếu không cócho phép
kèo bóng đá c1, sau đó truy cập bị từ chối.
Lưu ý rằng, với mục đích kết hợp nhiều kèo bóng đá c1,tất cả
kèo bóng đá c1 được coi là có cùng loại như bất kỳ loại kèo bóng đá c1 nào khác được áp dụng.
Ví dụ, trong mộtCập nhật
lệnh yêu cầu cảChọn
vàCập nhật
Quyền, nếu có nhiều kèo bóng đá c1 áp dụng của từng loại, chúng sẽ được kết hợp như sau:
Biểu thức
29087_29131Biểu thức
Từ hạn chế chọn/tất cả kèo bóng đá c1 2 VÀ ... VÀ (Biểu thức
Từ chọn cho phép/tất cả kèo bóng đá c1 1 HOẶCBiểu thức
Từ chọn cho phép/tất cả kèo bóng đá c1 2 HOẶC ... ) VÀBiểu thức
Từ bản cập nhật hạn chế/Tất cả kèo bóng đá c1 1 VÀBiểu thức
Từ bản cập nhật hạn chế/Tất cả kèo bóng đá c1 2 VÀ ... VÀ (Biểu thức
Từ bản cập nhật cho phép/Tất cả kèo bóng đá c1 1 HOẶCBiểu thức
Từ bản cập nhật cho phép/Tất cả kèo bóng đá c1 2 HOẶC ... )
Bạn phải là chủ sở hữu của bảng để tạo hoặc thay đổi kèo bóng đá c1 cho nó.
Trong khi các kèo bóng đá c1 sẽ được áp dụng cho các truy vấn rõ ràng đối với các bảng trong cơ sở dữ liệu, chúng không được áp dụng khi hệ thống đang thực hiện kiểm tra tính toàn vẹn nội bộ hoặc xác thực các ràng buộc. Điều này có nghĩa là có những cách gián tiếp để xác định rằng một giá trị nhất định tồn tại. Một ví dụ về điều này là cố gắng chèn một giá trị trùng lặp vào một cột là khóa chính hoặc có một ràng buộc duy nhất. Nếu chèn không thành công thì người dùng có thể suy ra rằng giá trị đã tồn tại. . Sự tồn tại có thể được xác định bởi người dùng chèn các giá trị vào bảng tham chiếu, trong đó thành công sẽ chỉ ra rằng giá trị tồn tại trong bảng được tham chiếu. Những vấn đề này có thể được giải quyết bằng cách chế tạo cẩn thận các kèo bóng đá c1 để ngăn người dùng không thể chèn, xóa hoặc cập nhật các bản ghi ở tất cả những gì có thể chỉ ra một giá trị mà chúng không thể nhìn thấy hoặc bằng cách sử dụng các giá trị được tạo (ví dụ: các khóa thay thế) thay vì các phím có nghĩa bên ngoài.
Nói chung, hệ thống sẽ thực thi các điều kiện bộ lọc được áp dụng bằng các kèo bóng đá c1 bảo mật trước khi trình độ xuất hiện trong các truy vấn của người dùng, để ngăn chặn sự tiếp xúc vô tình của dữ liệu được bảo vệ với các chức năng do người dùng xác định có thể không đáng tin cậy. Tuy nhiên, các chức năng và toán tử được đánh dấu bởi hệ thống (hoặc quản trị viên hệ thống) làLeakproof
Có thể được đánh giá trước các biểu thức kèo bóng đá c1, vì chúng được coi là đáng tin cậy.
31642_32266
Thảo luận bổ sung và kèo bóng đá c1 ví dụ thực tế có thể được tìm thấy trongPhần 5.7.
Tạo kèo bóng đá c1
là mộtPostgreSQLMở rộng.