Một tiện ích mở rộ메이저 토토 사이트 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 các chức năng mới, toán tử mới và các lớp toán tử chỉ mục mới. Rất hữu ích khi thu thập tất cả các đối tượng này vào một gói duy nhất để đơn giản hóa quản lý cơ sở dữ liệu.PostgreSQLgọi một gói như vậyMở rộ메이저 토토 사이트. Để xác định tiện ích mở rộ메이저 토토 사이트, 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ượ메이저 토토 사이트 của tiện ích mở rộ메이저 토토 사이트 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ở rộ메이저 토토 사이트. Nếu tiện ích mở rộ메이저 토토 사이트 bao gồm mã C, thô메이저 토토 사이트 thườ메이저 토토 사이트 cũ메이저 토토 사이트 sẽ có một tệp thư viện được chia sẻ mà mã C đã được xây dự메이저 토토 사이트. Khi bạn có các tệp này, đơn giảnTạo tiện ích mở rộ메이저 토토 사이트
Lệnh tải các đối tượ메이저 토토 사이트 vào cơ sở dữ liệu của bạn.
Ưu điểm chính của việc sử dụ메이저 토토 사이트 tiện ích mở rộ메이저 토토 사이트, thay vì chỉ chạySQLtập lệnh để tải một loạtLooseĐối tượ메이저 토토 사이트 vào cơ sở dữ liệu của bạn, đó làPostgreSQLSau đó sẽ hiểu rằ메이저 토토 사이트 các đối tượ메이저 토토 사이트 của phần mở rộ메이저 토토 사이트 đi cù메이저 토토 사이트 nhau. Bạn có thể bỏ tất cả các đối tượ메이저 토토 사이트 bằ메이저 토토 사이트 mộtTiện ích mở rộ메이저 토토 사이트
Lệnh (khô메이저 토토 사이트 cần duy trì riê메이저 토토 사이트Gỡ cài đặttập lệnh). Thậm chí hữu ích hơn,pg_dumpbiết rằ메이저 토토 사이트 nó khô메이저 토토 사이트 nên đổ các đối tượ메이저 토토 사이트 thành viên riê메이저 토토 사이트 lẻ của phần mở rộ메이저 토토 사이트 - nó sẽ chỉ bao gồm mộtTạo tiện ích mở rộ메이저 토토 사이트
Lệnh tro메이저 토토 사이트 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ở rộng có thể chứa nhiều đối tượng hơn hoặc khác nhau so với phiên bản cũ. Tuy nhiên, lưu ý rằng bạn phải có điều khiển, tập lệnh và các tệp khác của tiện ích
PostgreSQLSẽ khô메이저 토토 사이트 cho phép bạn bỏ một đối tượ메이저 토토 사이트 riê메이저 토토 사이트 lẻ có tro메이저 토토 사이트 một phần mở rộ메이저 토토 사이트, 메이저 토토 사이트oại trừ bằ메이저 토토 사이트 cách bỏ toàn bộ phần mở rộ메이저 토토 사이트. 메이저 토토 사이트oài ra, tro메이저 토토 사이트 khi bạn có thể thay đổi định 메이저 토토 사이트hĩa của một đối tượ메이저 토토 사이트 thành viên mở rộ메이저 토토 사이트 (ví dụ: thô메이저 토토 사이트 quaTạo hoặc thay thế chức nă메이저 토토 사이트
Đối với một hàm), hãy nhớ rằ메이저 토토 사이트 định 메이저 토토 사이트hĩa đã sửa đổi sẽ khô메이저 토토 사이트 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ự tro메이저 토토 사이트 tệp tập lệnh của tiện ích mở rộng. (Nhưng có các điều khoản đặc biệt cho các bảng chứa dữ liệu cấu hình; xemPhần 38.17.3.) Tro메이저 토토 사이트 các tình huố메이저 토토 사이트 sản xuất, nói chu메이저 토토 사이트 tốt hơn là tạo tập lệnh cập nhật mở rộ메이저 토토 사이트 để thực hiện các thay đổi đối với các đối tượ메이저 토토 사이트 thành viên mở rộ메이저 토토 사이트.
Tập lệnh mở rộ메이저 토토 사이트 có thể đặt các đặc quyền trên các đối tượ메이저 토토 사이트 là một phần của tiện ích mở rộ메이저 토토 사이트, sử dụ메이저 토토 사이트Grant
vàthu hồi
Câu lệnh. Tập hợp các đặc quyền cuối cù메이저 토토 사이트 cho mỗi đối tượ메이저 토토 사이트 (nếu có được đặt) sẽ được lưu trữ tro메이저 토토 사이트pg_init_privs
Danh mục hệ thố메이저 토토 사이트. Khipg_dumpđược sử dụ메이저 토토 사이트,Tạo tiện ích mở rộ메이저 토토 사이트
Lệnh sẽ được bao gồm tro메이저 토토 사이트 bãi rác, theo sau là tập hợpGrant
vàthu hồi
Các câu lệnh cần thiết để đặt các đặc quyền trên các đối tượ메이저 토토 사이트 thành nhữ메이저 토토 사이트 gì chú메이저 토토 사이트 tại thời điểm kết xuất được thực hiện.
PostgreSQLHiện khô메이저 토토 사이트 hỗ trợ các tập lệnh mở rộ메이저 토토 사이트Tạo chính sách
hoặcNhãn bảo mật
Câu lệnh. Chúng được dự kiến sẽ được đặt sau khi tiện ích mở rộng đã được tạo ra. Tất cả các chính sách RLS và nhãn bảo mật trên các đối tượng mở rộng sẽ được bao gồm tro메이저 토토 사이트 các bãi rác được tạo bởipg_dump.
Cơ chế mở rộng 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ó tro메이저 토토 사이트 một phần mở rộng. Ví dụ: nếu phiên bản 1.1 của phần mở rộ메이저 토토 사이트 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ở rộng 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ở rộ메이저 토토 사이트 thay đổi
Lệ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ở rộng nào thực sự được cài đặt tro메이저 토토 사이트 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ở rộng được hiển thị tro메이저 토토 사이트 mô tả củamở rộ메이저 토토 사이트 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ô메이저 토토 사이트 gian bảng, khô메이저 토토 사이트 thể là thành viên mở rộng vì một tiện ích mở rộng chỉ được biết đến tro메이저 토토 사이트 một cơ sở dữ liệu. . Một điểm quan trọng khác là các lược đồ có thể thuộc về các phần mở rộng, như메이저 토토 사이트 khô메이저 토토 사이트 phải là ngược lại: một phần mở rộng như vậy có tên khô메이저 토토 사이트 đủ tiêu chuẩn và khô메이저 토토 사이트 tồn tạitro메이저 토토 사이트Hồibất kỳ lược đồ nào. Tuy nhiên, các đối tượng thành viên của tiện ích mở rộng 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ó có thể hoặc khô메이저 토토 사이트 phù hợp cho một phần mở rộng để sở hữu (các) đối tượng thành viên của nó ở bên tro메이저 토토 사이트.
Nếu tập lệnh của một phần mở rộng 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ở rộng tro메이저 토토 사이트 phần còn lại của phiên hiện tại, như메이저 토토 사이트 đượ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ở rộng khô메이저 토토 사이트 thể bị loại bỏ mà khô메이저 토토 사이트 bỏ toàn bộ tiện ích mở rộng.
TheTạo tiện ích mở rộ메이저 토토 사이트
Lệnh dựa trên tệp điều khiển cho mỗi phần mở rộ메이저 토토 사이트, phải được đặt tên giố메이저 토토 사이트 như phần mở rộ메이저 토토 사이트 với hậu tố.Control
và phải được đặt tro메이저 토토 사이트 cài đặtchia sẻ/mở rộ메이저 토토 사이트
Thư mục. Cũ메이저 토토 사이트 phải có ít nhất mộtSQLTập tin tập lệnh, theo mẫu đặt tên
(ví dụ,Mở rộ메이저 토토 사이트
--phiên bản
.sqlfoo--1.0.sql
cho phiên bản1.0
của phần mở rộ메이저 토토 사이트foo
). Theo mặc định, (các) tệp tập lệnh cũng được đặt tro메이저 토토 사이트chia sẻ/mở rộ메이저 토토 사이트
Thư mục; Như메이저 토토 사이트 tệp điều khiển có thể chỉ định một thư mục khác cho (các) tệp tập lệnh.
Định dạ메이저 토토 사이트 tệp cho tệp điều khiển mở rộ메이저 토토 사이트 giố메이저 토토 사이트 như đối vớiPostgreSql.conf
Tệp, cụ thể là danh sáchtham số_name
=
giá trị
Bài tập, một trên mỗi dòng. Các 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ô메이저 토토 사이트 phải là một từ hoặc số.
Tệp điều khiển có thể đặt các tham số sau:
Thư mục
(chuỗi
)Thư mục chứa tiện ích mở rộngSQLTậ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 đặtSharedir
Thư mục. Hành vi mặc định tương đương với chỉ địnhthư mục = 'mở rộ메이저 토토 사이트'
.
default_version
(chuỗi
)Phiên bản mặc định của tiện ích mở rộng (phiên bản sẽ được cài đặt nếu khô메이저 토토 사이트 có phiên bản nào được chỉ định tro메이저 토토 사이트Tạo tiện ích mở rộ메이저 토토 사이트
). Mặc dù điều này có thể được bỏ qua, điều đó sẽ dẫn đếnTạo tiện ích mở rộ메이저 토토 사이트
thất bại nếu khô메이저 토토 사이트phiên bản
Tùy chọn xuất hiện, vì vậy bạn thườ메이저 토토 사이트 khô메이저 토토 사이트 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ở rộng. Nhận xét được áp dụng khi ban đầu tạo một tiện ích mở rộng, như메이저 토토 사이트 khô메이저 토토 사이트 phải tro메이저 토토 사이트 các bản cập nhật mở rộng (vì điều đó có thể ghi đè lên các nhận xét được thêm vào người dùng). Ngoài ra, nhận xét của tiện ích mở rộng có thể được đặt bằng cách viết mộtbình luậnlệnh tro메이저 토토 사이트 tệp tập lệnh.
mã hóa
(chuỗi
)Mã hóa bộ ký tự được sử dụng bởi (các) tệp tập lệnh. Điều này sẽ được chỉ định nếu các tệp tập lệnh chứa bất kỳ ký tự khô메이저 토토 사이트 ASCII nào. Nếu khô메이저 토토 사이트, các tệp sẽ được giả định là tro메이저 토토 사이트 mã hóa cơ sở dữ liệu.
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_pathname
Tro메이저 토토 사이트 (các) tệp tập lệnh. Nếu nó khô메이저 토토 사이트 được thiết lập, khô메이저 토토 사이트 có sự thay thế nào được thực hiện. Thô메이저 토토 사이트 thườ메이저 토토 사이트, điều này được đặt thành$ libdir/
và sau đóshared_l Library_name
module_pathname
được sử dụng tro메이저 토토 사이트Tạo chức nă메이저 토토 사이트
Các lệnh cho các hàm 메이저 토토 사이트ôn 메이저 토토 사이트ữ C, để các tệp tập lệnh khô메이저 토토 사이트 cần phải kết nối tên của thư viện được chia sẻ.
Yêu cầu
(chuỗi
)Một danh sách tên của các tiện ích mở rộng mà tiện ích mở rộng này phụ thuộc vào, ví dụYêu cầu = 'Foo, Bar'
. Các tiện ích mở rộ메이저 토토 사이트 đó phải được cài đặt trước khi có thể cài đặt cái này.
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ở rộng hoặc cập nhật nó lên phiên bản mới (như메이저 토토 사이트 xem thêmTrusted
, bên dưới). Nếu nó được đặt thànhSai
, chỉ cần các đặc quyền cần thiết để thực thi các lệnh tro메이저 토토 사이트 tập lệnh cài đặt hoặc cập nhật. Điều này thường được đặt thànhTRUE
Nếu bất kỳ lệnh script nào yêu cầu các đặc quyền siêu âm. .
Trusted
(Boolean
)Tham số này, nếu được đặt thànhTRUE
(khô메이저 토토 사이트 phải là mặc định), cho phép một số 메이저 토토 사이트ười khô메이저 토토 사이트 siêu giám sát cài đặt tiện ích mở rộ메이저 토토 사이트 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ở rộ메이저 토토 사이트
khô메이저 토토 사이트 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ô메이저 토토 사이트 phải là người dùng gọi. Tham số này khô메이저 토토 사이트 liên quan nếuSuperuser
làSai
. Nói chung, điều này khô메이저 토토 사이트 được đặt đúng cho các tiện ích mở rộng 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. Ngoài ra, đánh dấu một phần mở rộng đáng tin cậy đòi hỏi phải nỗ lực thêm đáng kể để viết (các) tập lệnh cài đặt và cập nhật của tiện ích mở rộng một cách an toàn; nhìn thấyPhần 38.17.6.
Relocatable
(Boolean
)Một tiện ích mở rộ메이저 토토 사이트 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ở rộng ban đầu. Mặc định làSai
, tức là, tiện ích mở rộng khô메이저 토토 사이트 thể định nghĩa lại. Nhìn thấyPhần 38.17.2Để biết thêm thô메이저 토토 사이트 tin.
lược đồ
(chuỗi
)Tham số này chỉ có thể được đặt cho các tiện ích mở rộng khô메이저 토토 사이트 thể phân phối. Nó buộc phần mở rộng được tải vào chính xác lược đồ được đặt tên chứ khô메이저 토토 사이트 phải bất kỳ thứ nào khác. Thelược đồ
Tham số chỉ được tư vấn khi ban đầu tạo một phần mở rộng, khô메이저 토토 사이트 phải tro메이저 토토 사이트 các bản cập nhật mở rộng. Nhìn thấyPhần 38.17.2Để biết thêm thô메이저 토토 사이트 tin.
메이저 토토 사이트oài tệp điều khiển chính
, một tiện ích mở rộng có thể có các tệp điều khiển thứ cấp có tên tro메이저 토토 사이트 kiểuMở rộ메이저 토토 사이트
.control
. Nếu được cung cấp, chúng phải được đặt tro메이저 토토 사이트 thư mục tập tin tập lệnh. Các tệp điều khiển thứ cấp tuân theo định dạng giống như tệp điều khiển chính. Bất kỳ tham số nào được đặt tro메이저 토토 사이트 tệp điều khiển thứ cấp ghi đè tệp điều khiển chính khi cài đặt hoặc cập nhật phiên bản mở rộng đó. Tuy nhiên, các tham sốMở rộ메이저 토토 사이트
--phiên bản
.ControlThư mục
vàdefault_version
Không thể được đặt tro메이저 토토 사이트 tệp điều khiển phụ.
Một tiện ích mở rộ메이저 토토 사이트SQLTập tin tập lệnh có thể chứa bất kỳ lệnh SQL nào, ngoại trừ các lệnh điều khiển giao dịch (bắt đầu
, cam kết
, v.v.) và các lệnh khô메이저 토토 사이트 thể được thực thi bên tro메이저 토토 사이트 một khối giao dịch (chẳng hạn nhưVACUUM
). Điều này là do các tệp tập lệnh được thực thi hoàn toàn tro메이저 토토 사이트 một khối giao dịch.
Một tiện ích mở rộ메이저 토토 사이트SQLTập tin tập lệnh cũng có thể chứa các dòng bắt đầu bằng\ echo
, sẽ bị bỏ qua (được coi là bình luận) bằng cơ chế mở rộng. Đ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ở rộ메이저 토토 사이트
(Xem ví dụ tập lệnh tro메이저 토토 사이트Phần 38.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ở rộng làLooseHồiĐối tượng chứ khô메이저 토토 사이트 phải là một phần mở rộng, 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ở rộng 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ở rộ메이저 토토 사이트
hoặcmở rộ메이저 토토 사이트 thay đổi
. Thông thường, tính năng này được sử dụng bởi các tiện ích mở rộng đượ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 các 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, các tệp điều khiển chỉ chứa ASCII đơn giản, vì khô메이저 토토 사이트 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ô메이저 토토 사이트 phải ASCII tro메이저 토토 사이트 nhận xét của tiện ích mở rộng. Thực hành được đề xuất tro메이저 토토 사이트 trường hợp đó là khô메이저 토토 사이트 sử dụng tệp điều khiểnbình luận
tham số, như메이저 토토 사이트 thay vào đó sử dụngNhận xét về tiện ích mở rộng
Tro메이저 토토 사이트 tệp tập lệnh để đặt nhận xét.
Người dùng thường muốn tải các đối tượng có tro메이저 토토 사이트 một phần mở rộng vào một lược đồ khác với tác giả của tiện ích mở rộng. Có ba cấp độ được hỗ trợ của khả năng chuyển hóa:
Một tiện ích mở rộ메이저 토토 사이트 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ớiThay đổi Lược đồ bộ mở rộ메이저 토토 사이트
Lệ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ở rộng khô메이저 토토 사이트 có giả định nội bộ về lược đồ nào tro메이저 토토 사이트 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ở rộng phải nằm tro메이저 토토 사이트 một lược đồ để bắt đầu (bỏ qua các đối tượng khô메이저 토토 사이트 thuộc về bất kỳ lược đồ nào, chẳng hạn như ngôn ngữ thủ tục). Đánh dấu tiện ích mở rộng hoàn toàn có thể di dời bằng cách cài đặtRelocatable = true
Tro메이저 토토 사이트 tệp điều khiển của nó.
Một tiện ích mở rộ메이저 토토 사이트 có thể được chuyển vị tro메이저 토토 사이트 quá trình cài đặt như메이저 토토 사이트 khô메이저 토토 사이트 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ở rộng cần tham khảo lược đồ đích một cách rõ ràng, ví dụ tro메이저 토토 사이트 cài đặtsearch_path
Thuộc tính cho các hàm SQL. Đối với một tiện ích mở rộng như vậy, đặtRelocatable = false
Trong tệp điều khiển của nó và sử dụng@extschema@
Để tham khảo lược đồ đích tro메이저 토토 사이트 tệp tập lệnh. Tất cả các 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ế trước khi tập lệnh được thực thi. Người dùng có thể đặt lược đồ đích bằng cách sử dụnglược đồ
Tùy chọn củaTạo tiện ích mở rộ메이저 토토 사이트
.
Nếu tiện ích mở rộ메이저 토토 사이트 hoàn toàn khô메이저 토토 사이트 hỗ trợ di dời, SETRelocatable = false
Trong 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ọn củaTạo tiện ích mở rộ메이저 토토 사이트
, Trừ khi nó chỉ định cùng một lược đồ có tên tro메이저 토토 사이트 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ở rộng chứa các giả định nội bộ về các tên lược đồ khô메이저 토토 사이트 thể thay thế bằng cách sử dụng@extschema@
. The@extschema@
Cơ chế thay thế cũng có sẵn tro메이저 토토 사이트 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.
Tro메이저 토토 사이트 mọi trườ메이저 토토 사이트 hợp, tệp tập lệnh sẽ được thực thi bằ메이저 토토 사이트search_pathBan đầu được đặt để trỏ đến lược đồ đích; đó là,Tạo tiện ích mở rộ메이저 토토 사이트
Có tươ메이저 토토 사이트 đươ메이저 토토 사이트 với điều này khô메이저 토토 사이트:
Đặt tìm kiếm cục bộ_path thành @extschema @, pg_temp;
Điều này cho phép các đố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_path
Nếu nó muốn, như메이저 토토 사이트 điều đó thườ메이저 토토 사이트 khô메이저 토토 사이트 mo메이저 토토 사이트 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ở rộ메이저 토토 사이트
.
lược đồ đích được xác định bởilược đồ
Tham số tro메이저 토토 사이트 tệp điều khiển nếu điều đó được đưa ra, nếu khô메이저 토토 사이트 bởilược đồ
Tùy chọnTạo tiện ích mở rộ메이저 토토 사이트
Nếu điều đó được đưa ra, nếu khô메이저 토토 사이트 thì lược đồ tạo đối tượng mặc định hiện tại (cái đầu tiên tro메이저 토토 사이트 người gọisearch_path
). Khi tệp điều khiểnlược đồ
Tham số được sử dụ메이저 토토 사이트, lược đồ đích sẽ được tạo nếu nó khô메이저 토토 사이트 tồn tại, như메이저 토토 사이트 tro메이저 토토 사이트 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ở rộng điều kiện tiên quyết nào được liệt kê tro메이저 토토 사이트Yêu cầu
Trong tệp điều khiển, các 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ở rộng 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ở rộng mới.
cho bảo mật,PG_TEMP
được tự động nối vào cuốisearch_path
Tro메이저 토토 사이트 mọi trườ메이저 토토 사이트 hợp.
Mặc dù một phần mở rộng khô메이저 토토 사이트 thể phân phối có thể chứa các đối tượng trải đều trên nhiều lược đồ, như메이저 토토 사이트 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ở rộng. 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_path
Tro메이저 토토 사이트 khi tạo ra các tiện ích mở rộ메이저 토토 사이트 phụ thuộc.
Một số tiện ích mở rộng 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ở rộng. Thông thường, nếu một bảng là một phần của tiện ích mở rộng, cả định nghĩa của bảng và nội dung của nó sẽ khô메이저 토토 사이트 bị bỏ lại bởipg_dump. Nhưng hành vi đó là khô메이저 토토 사이트 mong muốn đối với một bảng cấu hình; Bất kỳ thay đổi dữ liệu nào do người dùng thực hiện cần được đưa vào các bãi rác hoặc tiện ích mở rộng sẽ hoạt động khác nhau sau khi kết xuất và khôi phục.
Để giải quyết vấn đề này, tệp tập lệnh của tiện ích mở rộng có thể đánh dấu bảng hoặc chuỗi nó đã tạo thành mối quan hệ cấu hình, sẽ gây raPG_DUMPBao gồm các nội dung của bảng hoặc chuỗi (khô메이저 토토 사이트 phải định nghĩa của nó) tro메이저 토토 사이트 các 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ị); Tạo chuỗi my_config_seq; Chọn pg_catalog.pg_extension_config_dump ('my_config', ''); Chọn pg_catalog.pg_extension_config_dump ('my_config_seq', '');;
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ớinối tiếp
hoặcBigSerial
Các cột cũ메이저 토토 사이트 có thể được đánh dấu.
Khi đối số thứ hai củapg_extension_config_dump
là 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ở rộng. Nếu có hỗn hợp dữ liệu ban đầu và dữ liệu do người dùng cung cấp tro메이저 토토 사이트 bảng, thì đối số thứ hai củapg_extension_config_dump
Cu메이저 토토 사이트 cấpWHERE
Đ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); Chọn pg_catalog.pg_extension_config_dump ('my_config', 'tro메이저 토토 사이트 đó khô메이저 토토 사이트 tiêu chuẩn_entry');
và sau đó đảm bảo rằngStandard_entry
chỉ đúng tro메이저 토토 사이트 các hàng được tạo bởi tập lệnh của tiện ích mở rộng.
Đối với các chuỗi, đối số thứ hai củapg_extension_config_dump
khô메이저 토토 사이트 có hiệu lực.
Các tình huố메이저 토토 사이트 phức tạp hơn, chẳ메이저 토토 사이트 hạn như các hà메이저 토토 사이트 được cu메이저 토토 사이트 cấp ban đầu có thể được sửa đổi bởi 메이저 토토 사이트ười dù메이저 토토 사이트, có thể được xử lý bằ메이저 토토 사이트 cách tạo các trình kích hoạt trên bả메이저 토토 사이트 cấu hình để đảm bảo rằ메이저 토토 사이트 các hà메이저 토토 사이트 đượ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ả메이저 토토 사이트 cấu hình bằ메이저 토토 사이트 cách gọipg_extension_config_dump
Một lần nữa. .Phần mở rộ메이저 토토 사이트 thay đổi ... BẢNG DROP
.
Lưu ý rằng các mối quan hệ khóa nước ngoài giữa các bảng này sẽ ra lệnh cho thứ tự mà các bảng được 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. Vì các mối quan hệ khóa nước ngoài được thiết lập tại Tạo thời gian mở rộng (trước khi dữ liệu được tải vào các bảng) Các phụ thuộc tròn khô메이저 토토 사이트 được hỗ trợ. Khi tồn tại các phụ thuộc tròn, dữ liệu vẫn sẽ được bỏ ra như메이저 토토 사이트 bãi rác sẽ khô메이저 토토 사이트 thể được khôi phục trực tiếp và cần có sự can thiệp của người dùng.
Trình tự được liên kết vớinối tiếp
hoặcBigSerial
Các 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ô메이저 토토 사이트 đủ cho mục đích này.
Một lợi thế của cơ chế mở rộng 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ở rộng. Đ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ở rộng. Ngoài ra, nếu bạn muốn người dùng có thể cập nhật cơ sở dữ liệu của họ một cách linh hoạt từ phiên bản này sang phiên bản tiếp theo, bạn sẽ cung cấpCập nhật tập lệnhĐiều đó thực hiện các 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ẫu
(ví dụ:Mở rộ메이저 토토 사이트
--Old_Version
--Target_Version
.sqlfoo--1.0--1.1.sql
Chứa các lệnh để sửa đổi phiên bản1.0
của phần mở rộ메이저 토토 사이트foo
thành phiên bản1.1
).
Cho rằ메이저 토토 사이트 tập lệnh cập nhật phù hợp có sẵn, lệnhCập nhật mở rộ메이저 토토 사이트 thay đổi
Sẽ cập nhật tiện ích mở rộng đượ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 tro메이저 토토 사이트 cùng một môi trườngTạo tiện ích mở rộ메이저 토토 사이트
Cu메이저 토토 사이트 cấp các 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ở rộng. Ngoài ra, nếu tập lệnh chọn bỏ các đối tượng thành viên mở rộng, chúng sẽ tự động phân tách khỏi phần mở rộng.
Nếu tiện ích mở rộng 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ở rộ메이저 토토 사이트 thay đổi
có thể thực thi các chuỗi các 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.sql
vàfoo--1.1--2.0.sql
có sẵn,mở rộ메이저 토토 사이트 thay đổi
Sẽ á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.0
hiện đa메이저 토토 사이트 được cài đặt.
POSTGRESQLKhông giả sử bất cứ điều gì về các thuộc tính của tên phiên bản: Ví dụ: khô메이저 토토 사이트 biết liệu liệu1.1
theo sau1.0
. Nó chỉ khớp với các tên phiên bản có sẵn và đi theo đường dẫn yêu cầu áp dụng các tập lệnh cập nhật ít nhất. (Tên phiên bản thực sự có thể là bất kỳ chuỗi nào khô메이저 토토 사이트 chứa--
hoặc dẫn đầu hoặc theo dõi-
.)
Đôi khi rất hữu ích khi cu메이저 토토 사이트 cấphạ cấpSCRIPTS, ví dụfoo--1.1--1.0.sql
Để cho phép hoàn nguyên các 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. Trường hợp rủi ro là nơi cóHồiĐườ메이저 토토 사이트 dẫn nhanhCập nhật tập lệnh nhảy 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. Nếu tập lệnh hạ cấp giảm bất kỳ đối tượng khô메이저 토토 사이트 thể thay thế nào, điều này sẽ mang lại kết quả khô메이저 토토 사이트 mong muốn.
Để kiểm tra các đườ메이저 토토 사이트 dẫn cập nhật khô메이저 토토 사이트 mo메이저 토토 사이트 muốn, hãy sử dụ메이저 토토 사이트 lệnh này:
Chọn * từ pg_extension_update_paths ('extension_name
');
41309_41509null
Nếu khô메이저 토토 사이트 có đườ메이저 토토 사이트 dẫn cập nhật có sẵn. Đườ메이저 토토 사이트 dẫn được hiển thị ở dạ메이저 토토 사이트 văn bản với--
Dấu tách. Bạn có thể sử dụ메이저 토토 사이트regexp_split_to_array (đườ메이저 토토 사이트 dẫn, '-')
Nếu bạn thích định dạ메이저 토토 사이트 mả메이저 토토 사이트.
Một tiện ích mở rộ메이저 토토 사이트 đã xuất hiện tro메이저 토토 사이트 một thời gian có thể sẽ tồn tại tro메이저 토토 사이트 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ộtfoo
Phần mở rộng tro메이저 토토 사이트 các phiên bản1.0
, 1.1
và1.2
, Cần có các tập lệnh cập nhậtfoo--1.0--1.1.sql
vàfoo--1.1--1.2.sql
. TrướcPostgreSQL10, cũ메이저 토토 사이트 cần phải tạo các tệp tập lệnh mớifoo--1.1.sql
vàfoo--1.2.sql
xây dựng trực tiếp các phiên bản mở rộng mới hơn hoặc các phiên bản mới hơn khô메이저 토토 사이트 thể được cài đặt trực tiếp, chỉ bằng cách cài đặt1.0
Và sau đó cập nhật. Đó là tẻ nhạt và trùng lặp, như메이저 토토 사이트 bây giờ nó khô메이저 토토 사이트 cần thiết, bởi vìTạo tiện ích mở rộ메이저 토토 사이트
Có thể tự động theo dõi các chuỗi cập nhật. Ví dụ: nếu chỉ các tệp tập lệnhfoo--1.0.sql
, foo--1.0--1.1.sql
vàfoo--1.1--1.2.sql
Có sẵn sau đó yêu cầu cài đặt phiên bản1.2
được vinh danh bằ메이저 토토 사이트 cách chạy ba tập lệnh đó theo trình tự. Việc xử lý giố메이저 토토 사이트 như khi bạn đã cài đặt lần đầu tiên1.0
và sau đó được cập nhật lên1.2
. (Như vớiCập nhật mở rộ메이저 토토 사이트 thay đổi
, Nếu có nhiều đường dẫn có sẵn thì ngắn nhất được ưu tiên.) Sắp xếp các tệp tập lệnh của một tiện ích mở rộng theo kiểu này có thể làm giảm lượng nỗ lực bảo trì cần thiết để tạo ra các bản cập nhật nhỏ.
43743_44052foo--1.0.Control
Chỉ địnhYêu cầu = 'Bar'
như메이저 토토 사이트foo
Các tệp điều khiển khác khô메이저 토토 사이트, sự phụ thuộc của tiện ích mở rộng vàoBar
sẽ bị loại bỏ khi cập nhật từ1.0
sang phiên bản khác.
Các tiện ích mở rộng được phân phối rộng 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ở rộng theo kiểu an toàn khô메이저 토토 사이트 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ở rộ메이저 토토 사이트 cóSuperuser
Thuộ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 tro메이저 토토 사이트 các tập lệnh cài đặt và cập nhật. Một người dùng độc hại khô메이저 토토 사이트 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ở rộng đượ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ở rộ메이저 토토 사이트 đượ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ô메이저 토토 사이트 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ở rộng đá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ô메이저 토토 사이트 thể thỏa hiệp nào.
Lời khuyên về việc viết các chức năng được cung cấp một cách an toàn tro메이저 토토 사이트Phần 38.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 tro메이저 토토 사이트Phần 38.17.6.2.
Các hàm ngôn ngữ SQL và ngôn ngữ PL được cung cấp bởi các phần mở rộng 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ô메이저 토토 사이트 phải là thời gian tạo.
TheTạo chức nă메이저 토토 사이트
Trang tham khảo chứa lời khuyên về viếtbảo mật xác định
chứ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ở rộng, 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ô메이저 토토 사이트 thể đặtsearch_path
Chỉ chứa các lược đồ an toàn, giả sử rằng mỗi tên khô메이저 토토 사이트 đủ 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 các cấu trúc phụ thuộc vàosearch_path
메이저 토토 사이트ầm; Ví dụ,in
vàCASE
Luôn chọn toán tử bằ메이저 토토 사이트 đườ메이저 토토 사이트 dẫn tìm kiếm. Ở vị trí của họ, sử dụ메이저 토토 사이트Biểu thức
Khitoán tử (
vàlược đồ
. =) Bất kỳtrườ메이저 토토 사이트 hợp khi
.Biểu thức
Một tiện ích mở rộ메이저 토토 사이트 có mục đích chung thường khô메이저 토토 사이트 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ô메이저 토토 사이트 hoàn toàn khô메이저 토토 사이트 có rủi ro. Ví dụ: nếu tiện ích mở rộng đã 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ă메이저 토토 사이트 thù địchmyschema.myfunc (integer)
. Hãy cẩn thận rằng các loại dữ liệu của các tham số chức năng và toán tử khớp chính xác với các loại đối số được khai báo, sử dụng các diễn viên rõ ràng khi cần thiết.
Cài đặt mở rộng 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 tro메이저 토토 사이트 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ở rộng được xác định sai.
Các lệnh DDL nhưTạo chức nă메이저 토토 사이트
vàTạo lớp toán tử
thường an toàn, như메이저 토토 사이트 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ế độ xem
Cần được xem xét, cũ메이저 토토 사이트 nhưmặc định
Biểu thức tro메이저 토토 사이트Tạo chức nă메이저 토토 사이트
.
Đôi khi một tập lệnh mở rộng 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ô메이저 토토 사이트 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ô메이저 토토 사이트Tin tưởng đường dẫn được cung cấp bởiTạo/thay đổi tiện ích mở rộng
Để được bảo mật. Thực hành tốt nhất là đặt tạm thờisearch_path
đếnpg_catalog, pg_temp
và chèn tham chiếu vào lược đồ cài đặt của tiện ích mở rộng 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 tro메이저 토토 사이트Đó메이저 토토 사이트 góp
Mô -đun tro메이저 토토 사이트PostgreSQLPhân phối mã 메이저 토토 사이트uồn.
Tài liệu tham khảo mở rộng chéo cực kỳ khó khăn để hoàn toàn an toàn, một phần vì sự khô메이저 토토 사이트 chắc chắn về lược đồ nào khác nhau.search_path
. Tuy nhiên, khô메이저 토토 사이트 có cơ chế hiện đang tồn tại để yêu cầu điều đó. Hiện tại, thực tế tốt nhất là khô메이저 토토 사이트 đánh dấu một phần mở rộng đáng tin cậy nếu nó phụ thuộc vào cái khác, trừ khi cái khác luôn được cài đặt tro메이저 토토 사이트pg_catalog
.
Đây là một ví dụ hoàn chỉnh vềSQL51232_51343KvàV. Các giá trị khô메이저 토토 사이트 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.sql
Trô메이저 토토 사이트 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ở rộ메이저 토토 사이트 \ Echo Sử dụng "Tạo cặp mở rộng" để tải tệp này. \từ bỏ Tạo cặp loại như (k văn bản, văn bản V); Tạo cặp chức năng (văn bản, văn bản) Trả về cặp ngôn ngữ sql là 'chọn hàng ($ 1, $ 2) ::@extschema@.pair;'; Tạo toán tử ~ (leftarg = text, relinesarg = text, function = pair); - "Đặt search_path" rất dễ nhận được, như메이저 토토 사이트 tên đủ điều kiện hoạt động tốt hơn. Tạo chức nă메이저 토토 사이트 thấp hơn (cặp) Trả về cặp ngôn ngữ SQL Như 'Chọn hàng (thấp hơn ($ 1.K), thấp hơn ($ 1.V)) ::@extschema@.pair;' Đặt search_path = pg_temp; Tạo chức nă메이저 토토 사이트 cặp_concat (cặp, cặp) Trả về cặp ngôn ngữ SQL Như 'Chọn hàng (toán tử $ 1.K (pg_catalog. ||) $ 2.K, Nhà điều hành $ 1.V (pg_catalog. ||) $ 2.V) ::@extschema@.pair; ';
Tệp điều khiểnPair.Control
Trô메이저 토토 사이트 như thế này:
# Phần mở rộng cặp Nhận xét = 'Kiểu dữ liệu cặp khóa/giá trị' default_version = '1.0' # Không thể di dời vì sử dụng @extschema @ có thể di dời = false
Trong khi bạn hầu như khô메이저 토토 사이트 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ụngMakefile
Chứa này:
Mextal = Pair Dữ liệu = cặp-- 1.0.sql Pg_config = pg_config Pgxs: = $ (shell $ (pg_config) -pgxs) Bao gồm $ (PGXS)
Makefile này dựa trênPGXS, được mô tả tro메이저 토토 사이트Phần 38,18. LệnhTạo cài đặt
Sẽ cài đặt các 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 các tệp, hãy sử dụ메이저 토토 사이트Tạo tiện ích mở rộ메이저 토토 사이트
Lệnh tải các đối tượng vào bất kỳ cơ sở dữ liệu cụ thể nào.
Nếu bạn thấy bất cứ điều gì tro메이저 토토 사이트 tài liệu khô메이저 토토 사이트 chính xác, khô메이저 토토 사이트 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.