APostgreSQLCụm cơ sở dữ liệu chứa một hoặc nhiều cơ sở dữ liệu được đặt tên. Vai trò và một vài loại đối tượng khác được chia sẻ trên toàn bộ cụm.
Người dùng của cụm không nhất thiết phải có đặc quyền truy cập mọi cơ sở dữ liệu trong cụm. Chia sẻ tên vai trò có nghĩa là không thể có kèo bóng đá việt nam vai trò khác nhau được đặt tên, giả sử,Joe
Trong hai cơ sở dữ liệu trong cùng một cụm; Nhưng hệ thống có thể được cấu hình để cho phépJoe
Chỉ truy cập vào một số cơ sở dữ liệu.
Cơ sở dữ liệu chứa một hoặc nhiều tênSchemas, lần lượt chứa các bảng. Các kèo bóng đá việt nam đồ cũng chứa các loại đối tượng được đặt tên khác, bao gồm các kiểu dữ liệu, chức năng và toán tử.Schema1
vàMyschema
Có thể chứa kèo bóng đá việt nam bảng có tênMyTable
. Không giống như cơ sở dữ liệu, các kèo bóng đá việt nam đồ không được phân tách một cách cứng nhắc: người dùng có thể truy cập các đối tượng trong bất kỳ kèo bóng đá việt nam đồ nào trong cơ sở dữ liệu mà chúng được kết nối, nếu chúng có đặc quyền làm như vậy.
Có một số lý do tại sao người ta có thể muốn sử dụng các kèo bóng đá việt nam đồ:
Để cho phép nhiều người dùng sử dụng một cơ sở dữ liệu mà không can thiệp vào nhau.
Để tổ chức kèo bóng đá việt nam đối tượng cơ sở dữ liệu thành kèo bóng đá việt nam nhóm logic để làm cho chúng dễ quản lý hơn.
Các ứng dụng của bên thứ ba có thể được đưa vào các kèo bóng đá việt nam đồ riêng biệt để chúng không va chạm với tên của các đối tượng khác.
Schemas tương tự như các thư mục ở cấp hệ điều hành, ngoại trừ các kèo bóng đá việt nam đồ không thể được lồng.
Để tạo kèo bóng đá việt nam đồ, sử dụngTạo kèo bóng đá việt nam đồlệnh. Đặt cho kèo bóng đá việt nam đồ một tên của sự lựa chọn của bạn.
Tạo kèo bóng đá việt nam đồ myschema;
Để tạo hoặc truy cập các đối tượng trong kèo bóng đá việt nam đồ, viết ATên đủ điều kiệnBao gồm tên kèo bóng đá việt nam đồ và tên bảng được phân tách bằng một dấu chấm:
kèo bóng đá việt nam đồ
.
Bảng
Điều này hoạt động bất cứ nơi nào một tên bảng được mong đợi, bao gồm kèo bóng đá việt nam lệnh sửa đổi bảng và kèo bóng đá việt nam lệnh truy cập dữ liệu được thảo luận trong kèo bóng đá việt nam chương sau. .
Trên thực tế, cú pháp thậm chí còn chung hơn
Cơ sở dữ liệu
.
kèo bóng đá việt nam đồ
.
Bảng
cũng có thể được sử dụng, nhưng hiện tại đây chỉ là choPro FormaTuân thủ tiêu chuẩn SQL. Nếu bạn viết tên cơ sở dữ liệu, nó phải giống như cơ sở dữ liệu bạn được kết nối.
Vì vậy, để tạo một bảng trong kèo bóng đá việt nam đồ mới, sử dụng:
Tạo bảng myschema.mytable (
Để bỏ một kèo bóng đá việt nam đồ nếu nó trống (tất cả các đối tượng trong đó đã bị hủy), sử dụng:
Drop Schema myschema;
Để bỏ một kèo bóng đá việt nam đồ bao gồm tất cả các đối tượng chứa, sử dụng:
Drop Schema MySchema Cascade;
xemPhần 5.13Để biết mô tả về cơ chế chung đằng sau điều này.
Thông thường bạn sẽ muốn tạo một kèo bóng đá việt nam đồ thuộc sở hữu của người khác (vì đây là một trong những cách để hạn chế các hoạt động của người dùng của bạn đối với các không gian tên được xác định rõ). Cú pháp cho đó là:
Tạo kèo bóng đá việt nam đồSchema_name
ủy quyềnuser_name
;
Bạn thậm chí có thể bỏ qua tên kèo bóng đá việt nam đồ, trong trường hợp đó, tên kèo bóng đá việt nam đồ sẽ giống như tên người dùng. Nhìn thấyPhần 5.8.6Vì làm thế nào điều này có thể hữu ích.
Tên kèo bóng đá việt nam đồ bắt đầu bằngpg_
được dành riêng cho mục đích hệ thống và không thể được tạo bởi người dùng.
Trong các phần trước, chúng tôi đã tạo các bảng mà không chỉ định bất kỳ tên kèo bóng đá việt nam đồ nào. Theo mặc định, các bảng như vậy (và các đối tượng khác) được tự động đưa vào một kèo bóng đá việt nam đồ có têncông khai. Mỗi cơ sở dữ liệu mới đều chứa một kèo bóng đá việt nam đồ như vậy.
Tạo sản phẩm bảng (...);
và:
Tạo bảng công khai.products (...);
Tên đủ điều kiện là tẻ nhạt để viết, và tốt nhất là không nên không đưa một tên kèo bóng đá việt nam đồ cụ thể vào các ứng dụng. Do đó, các bảng thường được đề cập bởiTên không đủ tiêu chuẩn, chỉ bao gồm tên bảng. Hệ thống xác định bảng nào có nghĩa bằng cách theo dõiĐường dẫn tìm kiếm, đây là danh sách các kèo bóng đá việt nam đồ để xem xét. Bảng phù hợp đầu tiên trong đường dẫn tìm kiếm được coi là người bị truy nã. Nếu không có khớp trong đường dẫn tìm kiếm, một lỗi được báo cáo, ngay cả khi các tên bảng khớp tồn tại trong các kèo bóng đá việt nam đồ khác trong cơ sở dữ liệu.
Khả năng tạo các đối tượng giống như có tên trong các kèo bóng đá việt nam đồ khác nhau làm phức tạp việc viết một truy vấn tham khảo chính xác cùng một đối tượng mỗi lần. Nó cũng mở ra tiềm năng cho người dùng thay đổi hành vi của các truy vấn của người dùng khác, một cách độc hại hoặc vô tình.PostgreSQLbên trong, thêm một kèo bóng đá việt nam đồ vàosearch_path
Tin tưởng hiệu quả tất cả người dùng cóTạo
Đặc quyền trên kèo bóng đá việt nam đồ đó. Khi bạn chạy một truy vấn thông thường, một người dùng độc hại có thể tạo các đối tượng trong kèo bóng đá việt nam đồ đường dẫn tìm kiếm của bạn có thể kiểm soát và thực thi các hàm SQL tùy ý như thể bạn đã thực thi chúng.
kèo bóng đá việt nam đồ đầu tiên có tên trong đường dẫn tìm kiếm được gọi là kèo bóng đá việt nam đồ hiện tại. Bên cạnh việc tìm kiếm kèo bóng đá việt nam đồ đầu tiên được tìm kiếm, nó còn là kèo bóng đá việt nam đồ trong đó các bảng mới sẽ được tạo nếuTạo bảng
Lệnh không chỉ định tên kèo bóng đá việt nam đồ.
Để hiển thị đường dẫn tìm kiếm hiện tại, hãy sử dụng lệnh sau:
show search_path;
Trong thiết lập mặc định này trả về:
search_path
Phần tử đầu tiên chỉ định rằng một kèo bóng đá việt nam đồ có cùng tên với người dùng hiện tại sẽ được tìm kiếm. Nếu không có kèo bóng đá việt nam đồ như vậy tồn tại, mục nhập bị bỏ qua.
kèo bóng đá việt nam đồ đầu tiên trong đường dẫn tìm kiếm tồn tại là vị trí mặc định để tạo các đối tượng mới. Đó là lý do mà các đối tượng mặc định được tạo trong kèo bóng đá việt nam đồ công khai.
Để đặt kèo bóng đá việt nam đồ mới của chúng tôi vào đường dẫn, chúng tôi sử dụng:
Đặt search_path thành myschema, công khai;
(Chúng tôi bỏ qua$ user
Ở đây vì chúng tôi không có nhu cầu ngay lập tức.) Và sau đó chúng tôi có thể truy cập bảng mà không cần trình độ học vấn:
Drop Table myTable;
Ngoài ra, kể từMyschema
là phần tử đầu tiên trong đường dẫn, kèo bóng đá việt nam đối tượng mới theo mặc định sẽ được tạo trong đó.
Chúng tôi cũng có thể đã viết:
Đặt search_path thành myschema;
Sau đó, chúng tôi không còn quyền truy cập vào kèo bóng đá việt nam đồ công khai mà không có trình độ rõ ràng. Không có gì đặc biệt về kèo bóng đá việt nam đồ công khai ngoại trừ nó tồn tại theo mặc định.
Xem thêmPhần 9.25Đối với các cách khác để thao túng đường dẫn tìm kiếm kèo bóng đá việt nam đồ.
Đường dẫn tìm kiếm hoạt động theo cùng một cách cho tên kiểu dữ liệu, tên chức năng và tên toán tử như đối với tên bảng. Kiểu dữ liệu và tên chức năng có thể đủ điều kiện theo cách tương tự như tên bảng.
toán tử (
kèo bóng đá việt nam đồ
.
Nhà điều hành
)
Điều này là cần thiết để tránh sự mơ hồ của cú pháp. Một ví dụ là:
Chọn 3 toán tử (pg_catalog.+) 4;
Trong thực tế, người ta thường dựa vào đường dẫn tìm kiếm cho kèo bóng đá việt nam toán tử, để không phải viết bất cứ điều gì xấu xí như vậy.
Theo mặc định, người dùng không thể truy cập bất kỳ đối tượng nào trong các kèo bóng đá việt nam đồ mà họ không sở hữu. Để cho phép điều đó, chủ sở hữu của kèo bóng đá việt nam đồ phải cấpsử dụng
Đặc quyền trên kèo bóng đá việt nam đồ. Để cho phép người dùng sử dụng các đối tượng trong kèo bóng đá việt nam đồ, các đặc quyền bổ sung có thể cần phải được cấp, khi thích hợp cho đối tượng.
Người dùng cũng có thể được phép tạo các đối tượng trong kèo bóng đá việt nam đồ của người khác. Để cho phép điều đó,Tạo
Đặc quyền về kèo bóng đá việt nam đồ cần được cấp. Lưu ý rằng theo mặc định, mọi người đều cóTạo
vàcách sử dụng
Đặc quyền trên kèo bóng đá việt nam đồcông khai
. Điều này cho phép tất cả người dùng có thể kết nối với một cơ sở dữ liệu nhất định để tạo kèo bóng đá việt nam đối tượng trongcông khai
kèo bóng đá việt nam đồ. Một sốMẫu sử dụngGọi cho việc thu hồi đặc quyền đó:
Thu hồi Creat trên kèo bóng đá việt nam đồ công khai từ công khai;
(lần đầu tiêncông khailà kèo bóng đá việt nam đồ, thứ haicông khaicó nghĩa làMạnhMỗi người dùng. Theo nghĩa đầu tiên, nó là một định danh, theo nghĩa thứ hai, nó là một từ khóa, do đó vốn hóa khác nhau;Phần 4.1.1.)
Ngoàicông khai
và các kèo bóng đá việt nam đồ do người dùng tạo, mỗi cơ sở dữ liệu chứa mộtpg_catalog
kèo bóng đá việt nam đồ, chứa các bảng hệ thống và tất cả các loại dữ liệu, chức năng và toán tử tích hợp.pg_catalog
luôn là một phần hiệu quả của đường dẫn tìm kiếm. Nếu nó không được đặt tên rõ ràng trong đường dẫn thì nó được tìm kiếm ngầmtrướcTìm kiếm các kèo bóng đá việt nam đồ của đường dẫn. Điều này đảm bảo rằng các tên tích hợp sẽ luôn luôn có thể tìm thấy.pg_catalog
Ở cuối đường dẫn tìm kiếm của bạn nếu bạn thích có tên do người dùng xác định ghi đè tên tích hợp.
Vì tên bảng hệ thống bắt đầu bằngpg_
, Tốt nhất là tránh những cái tên như vậy để đảm bảo rằng bạn sẽ không bị xung đột nếu một số phiên bản trong tương lai định nghĩa một bảng hệ thống có tên giống như bảng của bạn. (Với đường dẫn tìm kiếm mặc định, một tham chiếu không đủ tiêu chuẩn cho tên bảng của bạn sau đó sẽ được giải quyết dưới dạng bảng hệ thống.)pg_
, để chúng không xung đột với kèo bóng đá việt nam tên bảng người dùng không đủ tiêu chuẩn miễn là người dùng tránhpg_
tiền tố.
Các kèo bóng đá việt nam đồ có thể được sử dụng để sắp xếp dữ liệu của bạn theo nhiều cách. MỘTmẫu sử dụng kèo bóng đá việt nam đồ an toànNgăn chặn người dùng không tin tưởng thay đổi hành vi của các truy vấn của người dùng khác. Khi cơ sở dữ liệu không sử dụng mẫu sử dụng kèo bóng đá việt nam đồ an toàn, người dùng muốn truy vấn an toàn rằng cơ sở dữ liệu sẽ có hành động bảo vệ ở đầu mỗi phiên.search_path
25765_25846search_path
. Có một vài mẫu sử dụng dễ dàng được hỗ trợ bởi cấu hình mặc định:
CRALAIN Người dùng thông thường đối với các kèo bóng đá việt nam đồ người dùng-tư. Để thực hiện điều này, vấn đềThu hồi Creat trên kèo bóng đá việt nam đồ công khai từ công khai
, và tạo kèo bóng đá việt nam đồ cho mỗi người dùng có cùng tên với người dùng đó. Hãy nhớ lại rằng đường dẫn tìm kiếm mặc định bắt đầu bằng$ user
, giải quyết cho tên người dùng. Do đó, nếu mỗi người dùng có một kèo bóng đá việt nam đồ riêng biệt, họ sẽ truy cập các kèo bóng đá việt nam đồ của riêng họ theo mặc định.pg_catalog
. Mẫu này là mẫu sử dụng kèo bóng đá việt nam đồ an toàn trừ khi người dùng không tin cậy là chủ sở hữu cơ sở dữ liệu hoặc giữcreaterole
Đặc quyền, trong trường hợp đó không có mẫu sử dụng kèo bóng đá việt nam đồ an toàn tồn tại.
Xóa kèo bóng đá việt nam đồ công khai khỏi đường dẫn tìm kiếm mặc định, bằng cách sửa đổiPostgreSql.conf
hoặc bằng cách phát hànhVai trò thay đổi tất cả kèo bóng đá việt nam set search_path = "$ user"
. Mọi người đều giữ lại khả năng tạo các đối tượng trong kèo bóng đá việt nam đồ công khai, nhưng chỉ có tên đủ điều kiện sẽ chọn các đối tượng đó.Postgresql: Tài liệu: 1 |0: 1 |0.2 |. Chức. Nếu bạn tạo các chức năng hoặc tiện ích mở rộng trong kèo bóng đá việt nam đồ công khai, hãy sử dụng mẫu đầu tiên thay thế.Createrole
Đặc quyền.
Giữ mặc định. Tất cả người dùng truy cập vào kèo bóng đá việt nam đồ công khai ngầm.
Đối với bất kỳ mẫu nào, để cài đặt các ứng dụng được chia sẻ (các bảng được sử dụng bởi mọi người, các chức năng bổ sung được cung cấp bởi các bên thứ ba, v.v.), đưa chúng vào các kèo bóng đá việt nam đồ riêng biệt. Hãy nhớ cấp các đặc quyền thích hợp để cho phép người dùng khác truy cập họ.
Trong tiêu chuẩn SQL, khái niệm về các đối tượng trong cùng một kèo bóng đá việt nam đồ được sở hữu bởi những người dùng khác nhau không tồn tại. Hơn nữa, một số triển khai không cho phép bạn tạo các kèo bóng đá việt nam đồ có tên khác với chủ sở hữu của họ.
. Đây là cáchPostgreSQLsẽ hoạt động hiệu quả nếu bạn tạo kèo bóng đá việt nam đồ trên mỗi người dùng cho mọi người dùng.user_name
.Table_Name
Ngoài ra, không có khái niệm về Acông khai
kèo bóng đá việt nam đồ trong tiêu chuẩn SQL. Để phù hợp tối đa với tiêu chuẩn, bạn không nên sử dụngcông khai
kèo bóng đá việt nam đồ.
Tất nhiên, một số hệ thống cơ sở dữ liệu SQL có thể không thực hiện các kèo bóng đá việt nam đồ hoặc cung cấp hỗ trợ không gian tên bằng cách cho phép (có thể giới hạn) truy cập cơ sở dữ liệu chéo. Nếu bạn cần làm việc với các hệ thống đó, thì tính di động tối đa sẽ đạt được bằng cách không sử dụng các kèo bóng đá việt nam đồ.