2010-01-25 27 views

Trả lời

24

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 đồ.

1

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.

+0

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) –

+0

@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 đồ). –

+0

@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

Các vấn đề liên quan