Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1

36.17. Bao bì các đối tượng liên quan đến một phần mở kèo tỷ số bóng đá euro hôm nay#

Một phần mở kèo tỷ số bóng đá euro hôm nay hữu ích choPostgreSQLthường bao gồm nhiều đối tượng SQL; Ví dụ: một loại dữ liệu mới sẽ yêu cầu kèo tỷ số bóng đá euro hôm nay chức năng mới, toán tử mới và kèo tỷ số bóng đá euro hôm nay lớp toán tử chỉ mục mới.PostgreSQLgọi một gói như vậyMở kèo tỷ số bóng đá euro hôm nay. Để xác định tiện ích mở kèo tỷ số bóng đá euro hôm nay, bạn cần ít nhất mộtTập tin tập lệnhchứaSQLCác lệnh để tạo các đối tượng của tiện ích mở kèo tỷ số bóng đá euro hôm nay và ATệp điều khiểnChỉ định một vài thuộc tính cơ bản của chính phần mở kèo tỷ số bóng đá euro hôm nay. Nếu tiện ích mở kèo tỷ số bóng đá euro hôm nay bao gồm mã C, thông thường cũng sẽ có một tệp thư viện được chia sẻ mà mã C đã được xây dựng.Tạo tiện ích mở kèo tỷ số bóng đá euro hôm nayLệnh tải kèo tỷ số bóng đá euro hôm nay đối tượng vào cơ sở dữ liệu của bạn.

Ưu điểm chính của việc sử dụng tiện ích mở kèo tỷ số bóng đá euro hôm nay, thay vì chỉ chạySQLtập lệnh để tải một loạtHồiLooseHồiĐối tượng vào cơ sở dữ liệu của bạn, đó làPostgreSQLSau đó sẽ hiểu rằng các đối tượng của phần mở kèo tỷ số bóng đá euro hôm nay đi cùng nhau. Bạn có thể bỏ tất cả các đối tượng bằng mộtTiện ích mở kèo tỷ số bóng đá euro hôm naylệnh (không cần duy trì riêngGỡ cài đặtxôngtập lệnh). Thậm chí hữu ích hơn,pg_dumpbiết rằng nó không nên đổ các đối tượng thành viên riêng lẻ của phần mở kèo tỷ số bóng đá euro hôm nay - nó sẽ chỉ bao gồm mộtTạo tiện ích mở kèo tỷ số bóng đá euro hôm nayLệnh trong bãi rác, thay vào đó. Điều này đơn giản hóa việc di chuyển đến một phiên bản mới của tiện ích mở kèo tỷ số bóng đá euro hôm nay có thể chứa nhiều đối tượng hơn hoặc khác nhau so với phiên bản cũ.

PostgreSQLsẽ không cho phép bạn bỏ một đối tượng riêng lẻ có trong một phần mở kèo tỷ số bóng đá euro hôm nay, ngoại trừ bằng cách bỏ toàn bộ phần mở kèo tỷ số bóng đá euro hôm nay. Ngoài ra, trong khi bạn có thể thay đổi định nghĩa của một đối tượng thành viên mở kèo tỷ số bóng đá euro hôm nay (ví dụ: thông quaTạo hoặc thay thế chức năngĐối với một hàm), hãy nhớ rằng định nghĩa sửa đổi sẽ không bị bỏ qua bởipg_dump. Một thay đổi như vậy thường chỉ hợp lý nếu bạn đồng thời thực hiện thay đổi tương tự trong tệp tập lệnh của tiện ích mở kèo tỷ số bóng đá euro hôm nay.Phần 36.17.3.) Trong các tình huống sản xuất, nói chung tốt hơn là tạo tập lệnh cập nhật mở kèo tỷ số bóng đá euro hôm nay để thực hiện các thay đổi đối với các đối tượng thành viên mở kèo tỷ số bóng đá euro hôm nay.

Tập lệnh mở kèo tỷ số bóng đá euro hôm nay có thể đặt các đặc quyền trên các đối tượng là một phần của phần mở kèo tỷ số bóng đá euro hôm nay, sử dụngGrantthu hồiCâu lệnh. Tập hợp kèo tỷ số bóng đá euro hôm nay đặc quyền cuối cùng cho mỗi đối tượng (nếu có được đặt) sẽ được lưu trữ trongpg_init_privsDanh mục hệ thống. KhiPG_DUMPđược sử dụng,Tạo tiện ích mở kèo tỷ số bóng đá euro hôm nayLệnh sẽ được bao gồm trong bãi rác, theo sau là tập hợpGrantthu hồikèo tỷ số bóng đá euro hôm nay câu lệnh cần thiết để đặt kèo tỷ số bóng đá euro hôm nay đặc quyền trên kèo tỷ số bóng đá euro hôm nay đối tượng thành những gì chúng tại thời điểm kết xuất được thực hiện.

PostgreSQLHiện tại không hỗ trợ các tập lệnh mở kèo tỷ số bóng đá euro hôm nayTạo chính sáchhoặcNhãn bảo mậtCâu lệnh. Chúng được dự kiến ​​sẽ được đặt sau khi tiện ích mở kèo tỷ số bóng đá euro hôm nay đã được tạo ra.pg_dump.

Cơ chế mở kèo tỷ số bóng đá euro hôm nay cũng có các quy định cho các tập lệnh sửa đổi bao bì để điều chỉnh các định nghĩa của các đối tượng SQL có trong một phần mở kèo tỷ số bóng đá euro hôm nay. Ví dụ: nếu phiên bản 1.1 của phần mở kèo tỷ số bóng đá euro hôm nay thêm một chức năng và thay đổi phần thân của chức năng khác so với 1.0, tác giả mở kèo tỷ số bóng đá euro hôm nay có thể cung cấpCập nhật tập lệnhĐiều đó chỉ thực hiện hai thay đổi đó. TheCập nhật mở kèo tỷ số bóng đá euro hôm nay thay đổiLệnh sau đó có thể được sử dụng để áp dụng các thay đổi này và theo dõi phiên bản mở kèo tỷ số bóng đá euro hôm nay nào thực sự được cài đặt trong cơ sở dữ liệu nhất định.

Các loại đối tượng SQL có thể là thành viên của một phần mở kèo tỷ số bóng đá euro hôm nay được hiển thị trong mô tả củamở kèo tỷ số bóng đá euro hôm nay thay đổi. Đáng chú ý, các đối tượng có toàn bộ cụm cơ sở dữ liệu, chẳng hạn như cơ sở dữ liệu, vai trò và không gian bảng, không thể là thành viên mở kèo tỷ số bóng đá euro hôm nay vì một tiện ích mở kèo tỷ số bóng đá euro hôm nay chỉ được biết đến trong một cơ sở dữ liệu.trongBất kỳ lược đồ nào. Tuy nhiên, các đối tượng thành viên của tiện ích mở kèo tỷ số bóng đá euro hôm nay sẽ thuộc về các lược đồ bất cứ khi nào thích hợp cho các loại đối tượng của chúng.

Nếu tập lệnh của một phần mở kèo tỷ số bóng đá euro hôm nay sẽ tạo bất kỳ đối tượng tạm thời nào (như bảng TEMP), các đối tượng đó được coi là thành viên mở kèo tỷ số bóng đá euro hôm nay trong phần còn lại của phiên hiện tại, nhưng được tự động bỏ ở cuối phiên, vì bất kỳ đối tượng tạm thời nào. Đây là một ngoại lệ đối với quy tắc mà các đối tượng thành viên mở kèo tỷ số bóng đá euro hôm nay không thể bị loại bỏ mà không bỏ toàn bộ tiện ích mở kèo tỷ số bóng đá euro hôm nay.

36.17.1. Tệp mở kèo tỷ số bóng đá euro hôm nay#

TheTạo tiện ích mở kèo tỷ số bóng đá euro hôm nayLệnh dựa trên tệp điều khiển cho mỗi tiện ích mở kèo tỷ số bóng đá euro hôm nay, phải được đặt tên giống như phần mở kèo tỷ số bóng đá euro hôm nay với hậu tố.control, và phải được đặt trong cài đặtchia sẻ/mở kèo tỷ số bóng đá euro hôm nayThư mục. Cũng phải có ít nhất mộtSQLTập tin tập lệnh, theo mẫu đặt tênMở kèo tỷ số bóng đá euro hôm nay--phiên bản.sql(ví dụ:foo--1.0.sqlcho phiên bản1.0của phần mở kèo tỷ số bóng đá euro hôm nayfoo). Theo mặc định, (kèo tỷ số bóng đá euro hôm nay) tệp tập lệnh cũng được đặt trongchia sẻ/mở kèo tỷ số bóng đá euro hôm nayThư mục; Nhưng tệp điều khiển có thể chỉ định một thư mục khác cho (kèo tỷ số bóng đá euro hôm nay) tệp tập lệnh.

Định dạng tệp cho tệp điều khiển mở kèo tỷ số bóng đá euro hôm nay giống như đối vớiPostgreSql.confTệp, cụ thể là danh sáchtham số_name = giá trịBài tập, một trên mỗi dòng. kèo tỷ số bóng đá euro hôm nay dòng trống và nhận xét được giới thiệu bởi#được cho phép. Hãy chắc chắn trích dẫn bất kỳ giá trị nào không phải là một từ hoặc số.

Tệp điều khiển có thể đặt kèo tỷ số bóng đá euro hôm nay tham số sau:

Thư mục(chuỗi) #

Thư mục chứa tiện ích mở kèo tỷ số bóng đá euro hôm naySQLTập tin tập lệnh. Trừ khi một đường dẫn tuyệt đối được đưa ra, tên liên quan đến cài đặtSharedirThư mục. Hành vi mặc định tương đương với chỉ địnhthư mục = 'mở kèo tỷ số bóng đá euro hôm nay'.

default_version(chuỗi) #

Phiên bản mặc định của tiện ích mở kèo tỷ số bóng đá euro hôm nay (phiên bản sẽ được cài đặt nếu không có phiên bản nào được chỉ định trongTạo tiện ích mở kèo tỷ số bóng đá euro hôm nay). Mặc dù điều này có thể được bỏ qua, điều đó sẽ dẫn đếnTạo tiện ích mở kèo tỷ số bóng đá euro hôm naythất bại nếu khôngphiên bảnTùy chọn xuất hiện, vì vậy bạn thường không muốn làm điều đó.

bình luận(chuỗi) #

Một bình luận (bất kỳ chuỗi nào) về phần mở kèo tỷ số bóng đá euro hôm nay. Nhận xét được áp dụng khi ban đầu tạo một tiện ích mở kèo tỷ số bóng đá euro hôm nay, nhưng không phải trong các bản cập nhật mở kèo tỷ số bóng đá euro hôm nay (vì điều đó có thể ghi đè lên các nhận xét được thêm vào người dùng).bình luậnLệnh trong tệp tập lệnh.

mã hóa(chuỗi) #

Mã hóa bộ ký tự được sử dụng bởi (kèo tỷ số bóng đá euro hôm nay) tệp tập lệnh. Điều này sẽ được chỉ định nếu kèo tỷ số bóng đá euro hôm nay tệp tập lệnh chứa bất kỳ ký tự không ASCII nào.

module_pathname(chuỗi) #

Giá trị của tham số này sẽ được thay thế cho mỗi lần xuất hiệnmodule_pathnameTrong (kèo tỷ số bóng đá euro hôm nay) tệp tập lệnh. Nếu nó không được thiết lập, không có sự thay thế nào được thực hiện.$ libdir/shared_l Library_namevà sau đómodule_pathnameđược sử dụng trongTạo chức năngkèo tỷ số bóng đá euro hôm nay lệnh cho kèo tỷ số bóng đá euro hôm nay hàm ngôn ngữ C, để kèo tỷ số bóng đá euro hôm nay tệp tập lệnh không cần phải kết nối tên của thư viện được chia sẻ.

Yêu cầu(chuỗi) #

Danh sách tên của các tiện ích mở kèo tỷ số bóng đá euro hôm nay mà phần mở kèo tỷ số bóng đá euro hôm nay này phụ thuộc vào, ví dụYêu cầu = 'Foo, Bar'. Các tiện ích mở kèo tỷ số bóng đá euro hôm nay đó phải được cài đặt trước khi có thể cài đặt cái này.

NO_RELOCATE(chuỗi) #

Danh sách tên của các tiện ích mở kèo tỷ số bóng đá euro hôm nay mà phần mở kèo tỷ số bóng đá euro hôm nay này phụ thuộc vào đó nên bị cấm thay đổi các lược đồ của chúng thông quamở kèo tỷ số bóng đá euro hôm nay thay đổi ... Đặt lược đồ. Điều này là cần thiết nếu tập lệnh của tiện ích mở kèo tỷ số bóng đá euro hôm nay này tham chiếu tên của lược đồ mở kèo tỷ số bóng đá euro hôm nay bắt buộc (sử dụng@extschema:tên@Cú pháp) theo cách không thể theo dõi đổi tên.

Superuser(Boolean) #

Nếu tham số này làTRUE(là mặc định), chỉ các siêu người dùng mới có thể tạo tiện ích mở kèo tỷ số bóng đá euro hôm nay hoặc cập nhật nó lên phiên bản mới (nhưng xem thêmTrusted, bên dưới). Nếu nó được đặt thànhSai, Chỉ cần kèo tỷ số bóng đá euro hôm nay đặc quyền cần thiết để thực thi kèo tỷ số bóng đá euro hôm nay lệnh trong tập lệnh cài đặt hoặc cập nhật. Điều này thường được đặt thànhTRUENếu bất kỳ lệnh script nào yêu cầu kèo tỷ số bóng đá euro hôm nay đặc quyền siêu âm. .

Trusted(Boolean) #

Tham số này, nếu được đặt thànhTRUE(không phải là mặc định), cho phép một số người không siêu giám sát cài đặt tiện ích mở kèo tỷ số bóng đá euro hôm nay cóSuperuserĐặt thànhTRUE. Cụ thể, cài đặt sẽ được phép cho bất kỳ ai cóTạoĐặc quyền trên cơ sở dữ liệu hiện tại. Khi người dùng thực thiTạo tiện ích mở kèo tỷ số bóng đá euro hôm naykhông phải là một siêu người dùng mà được phép cài đặt theo tham số này, sau đó tập lệnh cài đặt hoặc cập nhật được chạy dưới dạng Superuser bootstrap, không phải là người dùng gọi. Tham số này không liên quan nếuSuperuserSai. Nói chung, điều này không được đặt đúng cho các tiện ích mở kèo tỷ số bóng đá euro hôm nay có thể cho phép truy cập vào các khả năng chỉ có người điều hành khác, chẳng hạn như truy cập hệ thống tệp.Phần 36.17.6.

Relocatable(Boolean) #

Một tiện ích mở kèo tỷ số bóng đá euro hôm nay làRelocatableNếu có thể di chuyển các đối tượng chứa của nó vào một lược đồ khác sau khi tạo ra phần mở kèo tỷ số bóng đá euro hôm nay ban đầu. Mặc định làSai, tức là, tiện ích mở kèo tỷ số bóng đá euro hôm nay không thể định nghĩa lại. Nhìn thấyPhần 36.17.2Để biết thêm thông tin.

lược đồ(chuỗi) #

Tham số này chỉ có thể được đặt cho các tiện ích mở kèo tỷ số bóng đá euro hôm nay không thể phân phối. Nó buộc phần mở kèo tỷ số bóng đá euro hôm nay được tải vào chính xác lược đồ được đặt tên chứ không phải bất kỳ thứ nào khác.lược đồTham số chỉ được tư vấn khi ban đầu tạo một phần mở kèo tỷ số bóng đá euro hôm nay, không phải trong các bản cập nhật mở kèo tỷ số bóng đá euro hôm nay. Nhìn thấyPhần 36.17.2Để biết thêm thông tin.

Ngoài tệp điều khiển chínhMở kèo tỷ số bóng đá euro hôm nay.control, một tiện ích mở kèo tỷ số bóng đá euro hôm nay có thể có các tệp điều khiển thứ cấp có tên trong kiểuMở kèo tỷ số bóng đá euro hôm nay--phiên bản.control. Nếu được cung cấp, chúng phải được đặt trong thư mục tập tin tập lệnh.Thư mụcDefault_versionKhông thể đặt trong tệp điều khiển phụ.

Một tiện ích mở kèo tỷ số bóng đá euro hôm naySQLTập tin tập lệnh có thể chứa bất kỳ lệnh SQL nào, ngoại trừ kèo tỷ số bóng đá euro hôm nay lệnh điều khiển giao dịch (bắt đầu, cam kết, v.v.) và kèo tỷ số bóng đá euro hôm nay lệnh không thể được thực thi bên trong một khối giao dịch (chẳng hạn nhưVACUUM). Điều này là do kèo tỷ số bóng đá euro hôm nay tệp tập lệnh được thực thi hoàn toàn trong một khối giao dịch.

Một tiện ích mở kèo tỷ số bóng đá euro hôm naySQLTập tin tập lệnh cũng có thể chứa kèo tỷ số bóng đá euro hôm nay dòng bắt đầu bằng\ echo, sẽ bị bỏ qua (được coi là bình luận) bằng cơ chế mở kèo tỷ số bóng đá euro hôm nay. Điều khoản này thường được sử dụng để ném lỗi nếu tệp tập lệnh được đưa vàoPSQLthay vì được tải quaTạo tiện ích mở kèo tỷ số bóng đá euro hôm nay(Xem ví dụ tập lệnh trongPhần 36.17.7). Không có điều đó, người dùng có thể vô tình tải nội dung của tiện ích mở kèo tỷ số bóng đá euro hôm nay làLooseĐối tượng chứ không phải là một phần mở kèo tỷ số bóng đá euro hôm nay, một trạng thái có một chút tẻ nhạt để phục hồi từ.

Nếu tập lệnh mở kèo tỷ số bóng đá euro hôm nay chứa chuỗi@extowner@, Chuỗi đó được thay thế bằng tên (được trích dẫn phù hợp) của người dùng gọiTạo tiện ích mở kèo tỷ số bóng đá euro hôm nayhoặcmở kèo tỷ số bóng đá euro hôm nay thay đổi. Thông thường, tính năng này được sử dụng bởi các tiện ích mở kèo tỷ số bóng đá euro hôm nay được đánh dấu đáng tin cậy để gán quyền sở hữu các đối tượng được chọn cho người dùng gọi thay vì Superuser Bootstrap.

Trong khi kèo tỷ số bóng đá euro hôm nay tệp tập lệnh có thể chứa bất kỳ ký tự nào được cho phép bởi mã hóa được chỉ định, kèo tỷ số bóng đá euro hôm nay tệp điều khiển chỉ chứa ASCII đơn giản, vì không có cách nào choPostgreSQLĐể biết mã hóa tệp điều khiển là gì. Trong thực tế, đây chỉ là một vấn đề nếu bạn muốn sử dụng các ký tự không phải ASCII trong nhận xét của tiện ích mở kèo tỷ số bóng đá euro hôm nay. Thực hành được đề xuất trong trường hợp đó là không sử dụng tệp điều khiểnbình luậntham số, nhưng thay vào đó sử dụngNhận xét về tiện ích mở kèo tỷ số bóng đá euro hôm nayTrong tệp tập lệnh để đặt nhận xét.

36.17.2. Khả năng chuyển tiếp mở kèo tỷ số bóng đá euro hôm nay#

Người dùng thường muốn tải các đối tượng có trong một phần mở kèo tỷ số bóng đá euro hôm nay vào một lược đồ khác với tác giả của tiện ích mở kèo tỷ số bóng đá euro hôm nay. Có ba cấp độ được hỗ trợ của khả năng chuyển hóa:

  • Một tiện ích mở kèo tỷ số bóng đá euro hôm nay hoàn toàn có thể chuyển sang một lược đồ khác bất cứ lúc nào, ngay cả sau khi nó được tải vào cơ sở dữ liệu. Điều này được thực hiện vớiLược đồ bộ mở kèo tỷ số bóng đá euro hôm nay thay đổiLệnh, tự động đổi tên tất cả các đối tượng thành viên thành lược đồ mới. Thông thường, điều này chỉ có thể nếu phần mở kèo tỷ số bóng đá euro hôm nay không có giả định nội bộ về lược đồ nào trong bất kỳ đối tượng nào của nó. Ngoài ra, tất cả các đối tượng của tiện ích mở kèo tỷ số bóng đá euro hôm nay phải nằm trong một lược đồ để bắt đầu (bỏ qua các đối tượng không thuộc về bất kỳ lược đồ nào, chẳng hạn như ngôn ngữ thủ tục).Relocatable = trueTrong tệp điều khiển của nó.

  • Một tiện ích mở kèo tỷ số bóng đá euro hôm nay có thể được chuyển vị trong quá trình cài đặt nhưng không phải sau đó. Đây thường là trường hợp nếu tệp tập lệnh của tiện ích mở kèo tỷ số bóng đá euro hôm nay cần tham khảo lược đồ đích một cách rõ ràng, ví dụ trong cài đặtsearch_pathThuộc tính cho các hàm SQL. Đối với một tiện ích mở kèo tỷ số bóng đá euro hôm nay như vậy, đặtRelocatable = falseTrong tệp điều khiển của nó và sử dụng@extschema@Để tham khảo lược đồ đích trong tệp tập lệnh. Tất cả kèo tỷ số bóng đá euro hôm nay lần xuất hiện của chuỗi này sẽ được thay thế bằng tên của lược đồ mục tiêu thực tế (được trích xuất kép nếu cần thiết) trước khi tập lệnh được thực thi.lược đồTùy chọnTạo tiện ích mở kèo tỷ số bóng đá euro hôm nay.

  • Nếu tiện ích mở kèo tỷ số bóng đá euro hôm nay hoàn toàn không hỗ trợ di dời, SETRelocatable = falseTrong tệp điều khiển của nó và cũng được đặtlược đồvới tên của lược đồ mục tiêu dự định. Điều này sẽ ngăn chặn việc sử dụnglược đồTùy chọnTạo tiện ích mở kèo tỷ số bóng đá euro hôm nay, trừ khi nó chỉ định cùng một lược đồ có tên trong tệp điều khiển. Lựa chọn này thường là cần thiết nếu tiện ích mở kèo tỷ số bóng đá euro hôm nay chứa các giả định nội bộ về tên lược đồ của nó không thể thay thế bằng cách sử dụng@extschema@. The@extschema@Cơ chế thay thế cũng có sẵn trong trường hợp này, mặc dù nó được sử dụng hạn chế vì tên lược đồ được xác định bởi tệp điều khiển.

Trong mọi trường hợp, tệp tập lệnh sẽ được thực thi bằngsearch_pathBan đầu được đặt để trỏ đến lược đồ đích; đó là,Tạo tiện ích mở kèo tỷ số bóng đá euro hôm nayCó tương đương với điều này không:

Đặt tìm kiếm cục bộ_path thành @extschema @, pg_temp;

Điều này cho phép kèo tỷ số bóng đá euro hôm nay đối tượng được tạo bởi tệp tập lệnh đi vào lược đồ đích. Tệp tập lệnh có thể thay đổisearch_pathNếu nó muốn, nhưng điều đó thường không mong muốn.search_pathđược khôi phục về cài đặt trước đó sau khi hoàn thànhTạo tiện ích mở kèo tỷ số bóng đá euro hôm nay.

lược đồ đích được xác định bởilược đồ33853_33921lược đồTùy chọnTạo tiện ích mở kèo tỷ số bóng đá euro hôm nayNếu điều đó được đưa ra, nếu không thì lược đồ tạo đối tượng mặc định hiện tại (cái đầu tiên trong người gọisearch_path). Khi tệp điều khiểnlược đồTham số được sử dụng, lược đồ đích sẽ được tạo nếu nó không tồn tại, nhưng trong hai trường hợp còn lại, nó phải tồn tại.

Nếu có bất kỳ tiện ích mở kèo tỷ số bóng đá euro hôm nay điều kiện tiên quyết nào được liệt kê trongYêu cầuTrong tệp điều khiển, kèo tỷ số bóng đá euro hôm nay lược đồ mục tiêu của chúng được thêm vào cài đặt ban đầu củasearch_path, theo lược đồ mục tiêu của tiện ích mở kèo tỷ số bóng đá euro hôm nay mới. Điều này cho phép các đối tượng của chúng được hiển thị với tệp tập lệnh của tiện ích mở kèo tỷ số bóng đá euro hôm nay mới.

cho bảo mật,PG_TEMPđược tự động nối vào cuốisearch_pathTrong mọi trường hợp.

Mặc dù một phần mở kèo tỷ số bóng đá euro hôm nay không thể phân phối có thể chứa các đối tượng trải đều trên nhiều lược đồ, nhưng thường mong muốn đặt tất cả các đối tượng nhằm sử dụng bên ngoài vào một lược đồ, được coi là lược đồ mục tiêu của tiện ích mở kèo tỷ số bóng đá euro hôm nay. Sự sắp xếp như vậy hoạt động thuận tiện với cài đặt mặc định củasearch_pathTrong quá trình tạo ra các tiện ích mở kèo tỷ số bóng đá euro hôm nay phụ thuộc.

Nếu một phần mở kèo tỷ số bóng đá euro hôm nay tham chiếu các đối tượng thuộc về một phần mở kèo tỷ số bóng đá euro hôm nay khác, nên sử dụng trình độ lược đồ đó. Để làm điều đó, viết@extschema:tên@Trong tệp tập lệnh của tiện ích mở kèo tỷ số bóng đá euro hôm nay, trong đótênlà tên của phần mở kèo tỷ số bóng đá euro hôm nay khác (phải được liệt kê trong tiện ích mở kèo tỷ số bóng đá euro hôm nay nàyYêu cầuDanh sách). Chuỗi này sẽ được thay thế bằng tên (được trích xuất kép nếu cần thiết) của lược đồ mục tiêu của tiện ích mở kèo tỷ số bóng đá euro hôm nay đó.@extschema:tên@được sử dụng bên trong một chuỗi theo nghĩa đen, chẳng hạn như cơ thể chức năng hoặc Asearch_pathCài đặt. Trong các trường hợp khác, tham chiếu đối tượng được giảm xuống thành OID trong quá trình phân tích cú pháp và không yêu cầu tra cứu tiếp theo.) Nếu tên lược đồ của phần mở kèo tỷ số bóng đá euro hôm nay khác được nhúng, bạn nên ngăn phần mở kèo tỷ số bóng đá euro hôm nay khác được di chuyển sau khi bạn được cài đặt, bằng cách thêm tên của phần mở kèo tỷ số bóng đá euro hôm nay khác vào cái nàyNO_RELOCATEDanh sách.

36.17.3. Bảng cấu hình mở kèo tỷ số bóng đá euro hôm nay#

Một số tiện ích mở kèo tỷ số bóng đá euro hôm nay bao gồm các bảng cấu hình, có chứa dữ liệu có thể được người dùng thêm hoặc thay đổi sau khi cài đặt tiện ích mở kèo tỷ số bóng đá euro hôm nay. Thông thường, nếu một bảng là một phần của tiện ích mở kèo tỷ số bóng đá euro hôm nay, cả định nghĩa của bảng và nội dung của nó sẽ không bị bỏ lại bởiPG_DUMP. Nhưng hành vi đó là không mong muốn đối với một bảng cấu hình;

Để giải quyết vấn đề này, tệp tập lệnh của tiện ích mở kèo tỷ số bóng đá euro hôm nay có thể đánh dấu bảng hoặc một chuỗi nó đã tạo thành mối quan hệ cấu hình, sẽ gây rapg_dumpĐể bao gồm kèo tỷ số bóng đá euro hôm nay nội dung của bảng hoặc chuỗi (không phải định nghĩa của nó) trong kèo tỷ số bóng đá euro hôm nay bãi rác. Để làm điều đó, hãy gọi chức năngSau khi tạo bảng hoặc trình tự, ví dụ

Tạo bảng my_config (văn bản chính, văn bản giá trị);

Bất kỳ số lượng bảng hoặc chuỗi nào cũng có thể được đánh dấu theo cách này. Trình tự được liên kết vớisê -rihoặcBigSerialCột cũng có thể được đánh dấu.

Khi đối số thứ hai củapg_extension_config_dumplà một chuỗi trống, toàn bộ nội dung của bảng được đổ bởipg_dump. Điều này thường chỉ đúng nếu bảng ban đầu trống như được tạo bởi tập lệnh mở kèo tỷ số bóng đá euro hôm nay.pg_extension_config_dumpcung cấp AWHEREĐiều kiện chọn dữ liệu sẽ được bỏ. Ví dụ: bạn có thể làm

Tạo bảng my_config (văn bản chính, văn bản giá trị, standard_entry boolean);

và sau đó đảm bảo rằngStandard_entrychỉ đúng trong các hàng được tạo bởi tập lệnh của tiện ích mở kèo tỷ số bóng đá euro hôm nay.

Đối với kèo tỷ số bóng đá euro hôm nay chuỗi, đối số thứ hai củapg_extension_config_dumpkhông có hiệu lực.

kèo tỷ số bóng đá euro hôm nay tình huống phức tạp hơn, chẳng hạn như kèo tỷ số bóng đá euro hôm nay hàng được cung cấp ban đầu có thể được sửa đổi bởi người dùng, có thể được xử lý bằng cách tạo kèo tỷ số bóng đá euro hôm nay trình kích hoạt trên bảng cấu hình để đảm bảo rằng kèo tỷ số bóng đá euro hôm nay hàng được sửa đổi được đánh dấu chính xác.

Bạn có thể thay đổi điều kiện bộ lọc được liên kết với bảng cấu hình bằng cách gọipg_extension_config_dumpMột lần nữa. .mở kèo tỷ số bóng đá euro hôm nay thay đổi ... BẢNG BÁN.

Lưu ý rằng kèo tỷ số bóng đá euro hôm nay mối quan hệ khóa nước ngoài giữa kèo tỷ số bóng đá euro hôm nay bảng này sẽ ra lệnh cho thứ tự mà kèo tỷ số bóng đá euro hôm nay bảng bị bỏ qua bởi PG_DUMP. Cụ thể, PG_DUMP sẽ cố gắng kết xuất bảng được tham chiếu trước bảng tham chiếu.

Trình tự được liên kết vớisê -rihoặcBigSerialkèo tỷ số bóng đá euro hôm nay cột cần được đánh dấu trực tiếp để đổ trạng thái của chúng. Đánh dấu mối quan hệ cha mẹ của họ là không đủ cho mục đích này.

36.17.4. Cập nhật tiện ích mở kèo tỷ số bóng đá euro hôm nay#

Một lợi thế của cơ chế mở kèo tỷ số bóng đá euro hôm nay là nó cung cấp các cách thuận tiện để quản lý các bản cập nhật cho các lệnh SQL xác định các đối tượng của một phần mở kèo tỷ số bóng đá euro hôm nay. Điều này được thực hiện bằng cách liên kết một tên hoặc số phiên bản với mỗi phiên bản được phát hành của tập lệnh cài đặt của tiện ích mở kèo tỷ số bóng đá euro hôm nay.Cập nhật tập lệnhĐiều đó thực hiện kèo tỷ số bóng đá euro hôm nay thay đổi cần thiết để đi từ phiên bản này sang phiên bản tiếp theo. Cập nhật tập lệnh có tên theo mẫuMở kèo tỷ số bóng đá euro hôm nay--Old_Version--Target_Version.sql(ví dụ:foo--1.0--1.1.sqlChứa kèo tỷ số bóng đá euro hôm nay lệnh để sửa đổi phiên bản1.0của phần mở kèo tỷ số bóng đá euro hôm nayfoothành phiên bản1.1).

Cho rằng có sẵn tập lệnh cập nhật phù hợp, lệnhCập nhật mở kèo tỷ số bóng đá euro hôm nay thay đổiSẽ cập nhật tiện ích mở kèo tỷ số bóng đá euro hôm nay được cài đặt cho phiên bản mới được chỉ định. Tập lệnh cập nhật được chạy trong cùng một môi trườngTạo tiện ích mở kèo tỷ số bóng đá euro hôm nayCung cấp kèo tỷ số bóng đá euro hôm nay tập lệnh cài đặt: đặc biệt,search_pathđược thiết lập theo cùng một cách và bất kỳ đối tượng mới nào được tạo bởi tập lệnh đều được tự động thêm vào phần mở kèo tỷ số bóng đá euro hôm nay. Ngoài ra, nếu tập lệnh chọn bỏ các đối tượng thành viên mở kèo tỷ số bóng đá euro hôm nay, chúng sẽ tự động phân tách khỏi phần mở kèo tỷ số bóng đá euro hôm nay.

Nếu tiện ích mở kèo tỷ số bóng đá euro hôm nay có các tệp điều khiển thứ cấp, các tham số điều khiển được sử dụng cho tập lệnh cập nhật là các tham số được liên kết với phiên bản mục tiêu (mới) của tập lệnh.

mở kèo tỷ số bóng đá euro hôm nay thay đổicó thể thực thi kèo tỷ số bóng đá euro hôm nay chuỗi kèo tỷ số bóng đá euro hôm nay tệp tập lệnh cập nhật để đạt được bản cập nhật được yêu cầu. Ví dụ: nếu chỉfoo--1.0--1.1.sqlfoo--1.1--2.0.sqlCó sẵn,mở kèo tỷ số bóng đá euro hôm nay thay đổisẽ áp dụng chúng theo trình tự nếu bản cập nhật lên phiên bản2.0được yêu cầu khi1.0hiện đang được cài đặt.

PostgreSQLKhông giả sử bất cứ điều gì về kèo tỷ số bóng đá euro hôm nay thuộc tính của tên phiên bản: Ví dụ: không biết1.1theo sau1.0. Nó chỉ khớp với kèo tỷ số bóng đá euro hôm nay tên phiên bản có sẵn và đi theo đường dẫn yêu cầu áp dụng kèo tỷ số bóng đá euro hôm nay tập lệnh cập nhật ít nhất.--hoặc dẫn đầu hoặc theo dõi-.)

Đôi khi rất hữu ích khi cung cấphạ cấpSCRIPTS, ví dụfoo--1.1--1.0.sqlĐể cho phép hoàn nguyên kèo tỷ số bóng đá euro hôm nay thay đổi liên quan đến phiên bản1.1. Nếu bạn làm điều đó, hãy cẩn thận với khả năng một tập lệnh hạ cấp có thể được áp dụng bất ngờ vì nó mang lại một đường dẫn ngắn hơn.Đường dẫn nhanhHàngCập nhật tập lệnh nhảy về phía trước một số phiên bản cũng như tập lệnh hạ cấp xuống điểm bắt đầu của đường dẫn nhanh. Có thể thực hiện ít bước hơn để áp dụng hạ cấp và sau đó là đường dẫn nhanh hơn là di chuyển về phía trước một phiên bản tại một thời điểm.

Để kiểm tra kèo tỷ số bóng đá euro hôm nay đường dẫn cập nhật không mong muốn, hãy sử dụng lệnh này:

Chọn * từ pg_extension_update_paths ('extension_name');

44834_45034nullNếu không có đường dẫn cập nhật có sẵn. Đường dẫn được hiển thị ở dạng văn bản với--Dấu tách. Bạn có thể sử dụngregexp_split_to_array (đường dẫn, '-')Nếu bạn thích định dạng mảng.

36.17.5. Cài đặt tiện ích mở kèo tỷ số bóng đá euro hôm nay bằng cách sử dụng tập lệnh cập nhật#

Một tiện ích mở kèo tỷ số bóng đá euro hôm nay đã xuất hiện trong một thời gian có thể sẽ tồn tại trong một số phiên bản, mà tác giả sẽ cần viết các tập lệnh cập nhật. Ví dụ: nếu bạn đã phát hành mộtfooPhần mở kèo tỷ số bóng đá euro hôm nay trong các phiên bản1.0, 1.11.2, Cần có kèo tỷ số bóng đá euro hôm nay tập lệnh cập nhậtfoo--1.0--1.1.sqlfoo--1.1--1.2.sql. TrướcPostgreSQL10, cũng cần phải tạo kèo tỷ số bóng đá euro hôm nay tệp tập lệnh mớifoo--1.1.sqlfoo--1.2.sqlxây dựng trực tiếp các phiên bản mở kèo tỷ số bóng đá euro hôm nay mới hơn hoặc các phiên bản mới hơn không thể được cài đặt trực tiếp, chỉ bằng cách cài đặt1.0Và sau đó cập nhật. Đó là tẻ nhạt và trùng lặp, nhưng bây giờ nó không cần thiết, bởi vìTạo tiện ích mở kèo tỷ số bóng đá euro hôm nayCó thể tự động theo chuỗi cập nhật. Ví dụ: nếu chỉ kèo tỷ số bóng đá euro hôm nay tệp tập lệnhfoo--1.0.sql, foo--1.0--1.1.sqlfoo--1.1--1.2.sqlCó sẵn sau đó yêu cầu cài đặt phiên bản1.2được vinh danh bằng cách chạy ba tập lệnh đó theo trình tự. Việc xử lý giống như khi bạn đã cài đặt lần đầu tiên1.0Và sau đó được cập nhật lên1.2. (Như vớiCập nhật mở kèo tỷ số bóng đá euro hôm nay thay đổi, Nếu có sẵn nhiều con đường thì có sẵn ngắn nhất.

Nếu bạn sử dụng các tệp điều khiển thứ cấp (cụ thể phiên bản) với tiện ích mở kèo tỷ số bóng đá euro hôm nay được duy trì theo kiểu này, hãy nhớ rằng mỗi phiên bản cần một tệp điều khiển ngay cả khi nó không có tập lệnh cài đặt độc lập, vì tệp điều khiển đó sẽ xác định cách thức cập nhật ngầm vào phiên bản đó. Ví dụ: nếufoo--1.0.ControlChỉ địnhYêu cầu = 'Bar'nhưngfoo47798_47861Barsẽ bị loại bỏ khi cập nhật từ1.0sang phiên bản khác.

36.17.6. Cân nhắc bảo mật cho các tiện ích mở kèo tỷ số bóng đá euro hôm nay#

Các tiện ích mở kèo tỷ số bóng đá euro hôm nay được phân phối kèo tỷ số bóng đá euro hôm nay rãi nên giả định rất ít về cơ sở dữ liệu mà chúng chiếm. Do đó, việc viết các chức năng được cung cấp bởi một tiện ích mở kèo tỷ số bóng đá euro hôm nay theo kiểu an toàn không thể bị xâm phạm bởi các cuộc tấn công dựa trên đường dẫn.

Một tiện ích mở kèo tỷ số bóng đá euro hôm nay cóSuperuserThuộc tính được đặt thành True cũng phải xem xét các mối nguy hiểm bảo mật cho các hành động được thực hiện trong các tập lệnh cài đặt và cập nhật. Một người dùng độc hại không khó để tạo ra các đối tượng Trojan-Horse sẽ thỏa hiệp sau đó việc thực hiện một tập lệnh mở kèo tỷ số bóng đá euro hôm nay được viết bất cẩn, cho phép người dùng đó có được các đặc quyền Superuser.

Nếu một phần mở kèo tỷ số bóng đá euro hôm nay được đánh dấuTrusted, sau đó lược đồ cài đặt của nó có thể được chọn bởi người dùng cài đặt, những người có thể cố tình sử dụng lược đồ không an toàn với hy vọng đạt được các đặc quyền siêu âm. Do đó, một tiện ích mở kèo tỷ số bóng đá euro hôm nay đáng tin cậy cực kỳ bị phơi bày từ quan điểm bảo mật và tất cả các lệnh tập lệnh của nó phải được kiểm tra cẩn thận để đảm bảo rằng không thể thỏa hiệp nào.

Lời khuyên về việc viết kèo tỷ số bóng đá euro hôm nay chức năng được cung cấp một cách an toàn trongPhần 36.17.6.1bên dưới và lời khuyên về việc viết tập lệnh cài đặt được cung cấp một cách an toàn trongPhần 36.17.6.2.

36.17.6.1. Cân nhắc bảo mật cho các chức năng mở kèo tỷ số bóng đá euro hôm nay#

Các hàm ngôn ngữ SQL và ngôn ngữ PL được cung cấp bởi các tiện ích mở kèo tỷ số bóng đá euro hôm nay có nguy cơ tấn công dựa trên đường dẫn khi chúng được thực thi, vì việc phân tích các chức năng này xảy ra vào thời điểm thực hiện không phải là thời điểm tạo.

TheTạo chức năngTrang tham khảo chứa lời khuyên về viếtbảo mật xác địnhchức năng an toàn. Đó là thực tế tốt để áp dụng các kỹ thuật đó cho bất kỳ chức năng nào được cung cấp bởi một tiện ích mở kèo tỷ số bóng đá euro hôm nay, vì chức năng có thể được gọi bởi người dùng đặc quyền cao.

Nếu bạn không thể đặtsearch_pathĐể chỉ chứa kèo tỷ số bóng đá euro hôm nay lược đồ an toàn, giả sử rằng mỗi tên không đủ tiêu chuẩn có thể giải quyết cho một đối tượng mà người dùng độc hại đã xác định. Cảnh giác với kèo tỷ số bóng đá euro hôm nay cấu trúc phụ thuộc vàosearch_pathngầm; Ví dụ,incaseexpressionKhiLuôn chọn toán tử bằng đường dẫn tìm kiếm. Ở vị trí của họ, sử dụngtoán tử (lược đồ. =) Bất kỳtrường hợp khiBiểu thức.

Một tiện ích mở kèo tỷ số bóng đá euro hôm nay có mục đích chung thường không nên cho rằng nó được cài đặt vào một lược đồ an toàn, điều đó có nghĩa là ngay cả các tham chiếu đủ điều kiện lược đồ đối với các đối tượng của nó không hoàn toàn không có rủi ro. Ví dụ: nếu tiện ích mở kèo tỷ số bóng đá euro hôm nay đã xác định chức năngmyschema.myfunc (bigint)Sau đó, một cuộc gọi nhưmyschema.myfunc (42)Có thể bị bắt bởi chức năng thù địchmyschema.myfunc (integer). Hãy cẩn thận rằng kèo tỷ số bóng đá euro hôm nay loại dữ liệu của kèo tỷ số bóng đá euro hôm nay tham số chức năng và toán tử khớp chính xác với kèo tỷ số bóng đá euro hôm nay loại đối số được khai báo, sử dụng kèo tỷ số bóng đá euro hôm nay diễn viên rõ ràng khi cần thiết.

36.17.6.2. Cân nhắc bảo mật cho các tập lệnh mở kèo tỷ số bóng đá euro hôm nay#

Cài đặt mở kèo tỷ số bóng đá euro hôm nay hoặc tập lệnh cập nhật nên được viết để bảo vệ chống lại các cuộc tấn công dựa trên đường dẫn tìm kiếm xảy ra khi tập lệnh thực thi. Nếu một tham chiếu đối tượng trong tập lệnh có thể được thực hiện để giải quyết cho một số đối tượng khác ngoài ý định của tác giả tập lệnh, thì một sự thỏa hiệp có thể xảy ra ngay lập tức hoặc sau đó khi sử dụng đối tượng mở kèo tỷ số bóng đá euro hôm nay được xác định sai.

kèo tỷ số bóng đá euro hôm nay lệnh DDL nhưTạo chức năngTạo lớp toán tửthường an toàn, nhưng hãy cẩn thận với bất kỳ lệnh nào có biểu thức mục đích chung như một thành phần. Ví dụ,Tạo chế độ xemCần được xem xét, cũng như mộtMặc địnhBiểu thức trongTạo chức năng.

Đôi khi một tập lệnh mở kèo tỷ số bóng đá euro hôm nay có thể cần thực hiện SQL có mục đích chung, ví dụ để thực hiện các điều chỉnh danh mục không thể thông qua DDL. Hãy cẩn thận để thực hiện các lệnh đó bằng một an toànsearch_path; LÀMkhôngTin tưởng đường dẫn được cung cấp bởiTạo/thay đổi tiện ích mở kèo tỷ số bóng đá euro hôm nayĐể được bảo mật. Thực hành tốt nhất là đặt tạm thờisearch_pathđếnpg_catalog, pg_tempvà chèn tham chiếu vào lược đồ cài đặt của tiện ích mở kèo tỷ số bóng đá euro hôm nay một cách rõ ràng khi cần thiết. (Thực hành này cũng có thể hữu ích cho việc tạo chế độ xem.) Các ví dụ có thể được tìm thấy trongĐóng gópMô -đun trongPostgreSQLPhân phối mã nguồn.

Tài liệu tham khảo mở kèo tỷ số bóng đá euro hôm nay chéo cực kỳ khó khăn để đảm bảo hoàn toàn, một phần vì sự không chắc chắn về lược đồ nào khác nhau.search_path. Tuy nhiên, không có cơ chế hiện đang tồn tại để yêu cầu điều đó.pg_catalog.

36.17.7. Ví dụ tiện ích mở kèo tỷ số bóng đá euro hôm nay#

Đây là một ví dụ hoàn chỉnh vềSQL55094_55205HồiKKhănHồiV. kèo tỷ số bóng đá euro hôm nay giá trị không theo văn bản được tự động ép buộc vào văn bản để lưu trữ.

Tệp tập lệnhcặp--1.0.sqlTrông như thế này:

- Khiếu nại nếu tập lệnh có nguồn gốc từ PSQL, thay vì thông qua Tạo tiện ích mở kèo tỷ số bóng đá euro hôm nay

Tệp điều khiểnPair.ControlTrông như thế này:

# Phần mở kèo tỷ số bóng đá euro hôm nay cặp

Trong khi bạn hầu như không cần một makefile để cài đặt hai tệp này vào thư mục chính xác, bạn có thể sử dụngMakefileChứa này:

Phần mở kèo tỷ số bóng đá euro hôm nay = cặp

Makefile này dựa trênPGXS, được mô tả trongPhần 36,18. LệnhTạo cài đặtSẽ cài đặt kèo tỷ số bóng đá euro hôm nay tệp điều khiển và tập lệnh vào thư mục chính xác như được báo cáo bởiPG_CONFIG.

Sau khi cài đặt kèo tỷ số bóng đá euro hôm nay tệp, hãy sử dụngTạo tiện ích mở kèo tỷ số bóng đá euro hôm naylệnh để tải kèo tỷ số bóng đá euro hôm nay đối tượng vào bất kỳ cơ sở dữ liệu cụ thể nào.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.