Tôi đã chỉ tò mò tại sao tất cả các cơ sở dữ liệu trong PostgreSQL có một lược đồ public
có thể truy cập được cho tất cả người dùng. Tôi biết tôi có thể thu hồi đặc quyền và cấp cho họ một người dùng nhưng tại sao đó không phải là mặc định?Tại sao tất cả các cơ sở dữ liệu đều có lược đồ công khai trong PostgreSQL?
Trả lời
Không có nhiều biện minh nào đó, nhưng xem phần [5.7.6][1] trong cuốn hướng dẫn, nhưng tôi nghĩ rằng những điều sau đây trả lời câu hỏi của bạn:
Nếu bạn không tạo ra bất kỳ schemas sau đó tất cả người dùng truy cập vào schema công ngầm . Điều này mô phỏng tình huống mà các lược đồ không có sẵn. Thiết lập này chủ yếu được khuyến nghị khi chỉ có một người dùng hoặc một vài người dùng hợp tác trong cơ sở dữ liệu. Thiết lập này cũng cho phép chuyển đổi suôn sẻ từ thế giới không nhận biết lược đồ.
Dự đoán của tôi sẽ là thông số SQL. Tuy nhiên, điều này là khá hợp lý những gì sẽ create user
làm khác, yêu cầu bạn phải nói rõ ràng những gì lược đồ người dùng đã truy cập quá?
Nếu người dùng của bạn không có quyền truy cập vào bất kỳ tài nguyên được chia sẻ nào, tại sao không chỉ tạo DB mới cho họ? Không giống như trong MySQL, một cơ sở dữ liệu mới là một cơ sở dữ liệu mới và không phải là một bí danh cho một lược đồ mới.
Tôi chỉ muốn làm rõ điều này, điều đó có nghĩa là mỗi cơ sở dữ liệu có lược đồ public.
riêng.
- 1. Tài liệu cơ sở dữ liệu Postgresql
- 2. PostgreSQL cách tạo bản sao của cơ sở dữ liệu hoặc lược đồ?
- 3. PostgreSQL: Tạo lược đồ trong cơ sở dữ liệu cụ thể
- 4. Tại sao có quá ít lược đồ cơ sở dữ liệu đầy đủ mẫu trực tuyến?
- 5. JavaScript vẽ lược đồ cơ sở dữ liệu
- 6. Thả tất cả các đối tượng trong cơ sở dữ liệu SQL Server thuộc về các lược đồ khác nhau?
- 7. heroku không cập nhật lược đồ cơ sở dữ liệu
- 8. Làm cách nào để có danh sách tất cả các chức năng được lưu trữ trong cơ sở dữ liệu của một lược đồ cụ thể trong PostgreSQL?
- 9. Có công cụ nào để di chuyển lược đồ cho cơ sở dữ liệu NoSQL không?
- 10. Tại sao lược đồ cơ sở dữ liệu thường chứa 32, 64, 128, v.v.
- 11. Lược đồ cơ sở dữ liệu thực tế xấu
- 12. Lược đồ cơ sở dữ liệu giải mã
- 13. Sao chép toàn bộ nội dung cơ sở dữ liệu (lược đồ và dữ liệu)
- 14. Cập nhật lược đồ cơ sở dữ liệu với hibernate
- 15. Lược đồ cơ sở dữ liệu Sqlite của Android
- 16. Chiến lược triển khai cơ sở dữ liệu (SQL Server)
- 17. Đồng bộ hóa các lược đồ cơ sở dữ liệu giữa các nhà phát triển
- 18. Làm cách nào để xuất lược đồ cơ sở dữ liệu postgresql sang định dạng XML?
- 19. Lược đồ cơ sở dữ liệu HR-XML
- 20. Truy xuất lược đồ cơ sở dữ liệu
- 21. Cập nhật lược đồ cơ sở dữ liệu
- 22. Lược đồ Cơ sở Dữ liệu Thăm dò ý kiến
- 23. Mongoose: Lược đồ cơ sở dữ liệu được đề xuất
- 24. Cài đặt Tiện ích mở rộng PostgreSQL cho tất cả các lược đồ
- 25. Công cụ Lược đồ Cơ sở dữ liệu MySQL tốt là gì?
- 26. Có công cụ mã nguồn mở nào để chuyển đổi lược đồ xml thành lược đồ cơ sở dữ liệu cho Linux không?
- 27. danh sách lược đồ có kích thước (tương đối và tuyệt đối) trong cơ sở dữ liệu PostgreSQL
- 28. Bất kỳ công cụ so sánh lược đồ cơ sở dữ liệu SQL Anywhere nào tốt?
- 29. Có một thứ như một lược đồ trong cơ sở dữ liệu đồ thị không?
- 30. Khôi phục cơ sở dữ liệu Postgresql
Tôi không nghĩ đó là do thông số SQL: "không có khái niệm về lược đồ công khai trong tiêu chuẩn SQL". [Hướng dẫn sử dụng Postgres] (http://www.postgresql.org/docs/8.1/static/ddl-schemas.html) –
@CarlG Nhưng nó cho phép bạn sử dụng DB mà không có kiến thức về lược đồ, đó là cách các công cụ khác hoạt động (vì họ không có lược đồ). –
@ElliotCameron Oracle có lược đồ, nó sử dụng lược đồ đồng nghĩa với người dùng; người dùng có được lược đồ của riêng họ, các lược đồ cũng có thể được chia sẻ. Microsoft SQL Server có lược đồ (như Sybase), với mặc định được gọi là 'dbo' tương đương với' public' trong PostgreSQL, nếu bạn không chỉ định lược đồ, nó mặc định là 'dbo'. DB2 của IBM cũng có lược đồ. MySQL có từ đồng nghĩa 'lược đồ', hoán đổi cho nhau với 'cơ sở dữ liệu' để không thực sự là một lược đồ theo nghĩa của những người khác được đề cập. – Davos