PostgreSQL

PostgreSQL Schema là gì? Tại sao cần sử dụng schema?

PostgreSQL Schema là gì? Tại sao cần sử dụng schema?
Được viết bởi Minh Hoàng

Series chia sẻ về PostgreSQL – Cơ sở dữ liệu mã nguồn mở tiên tiến nhất thế giới.

Bài viết này chúng ta sẽ cùng tìm hiểu schema (lược đồ) PostgreSQL là gì và các vấn đề liên quan đến PostgreSQL schema.

1. Schema trong PostgreSQL là gì?

1. Schema trong PostgreSQL là gì?

Trong PostgreSQL, schema là một namespace chứa các đối tượng cơ sở dữ liệu như tables, views, indexes, data types, functions, và operators.

Để truy cập một đối tượng của schema, bạn đặt tên của nó với tên schema làm tiền tố:

schema_name.object_name

Hoặc bạn có thể đặt đường dẫn tìm kiếm (search path) bao gồm schema.

Một cơ sở dữ liệu có thể chứa một hoặc nhiều schema, trong khi mỗi schema chỉ thuộc về một cơ sở dữ liệu. Hai schema có thể có các đối tượng khác nhau có cùng tên.

Ví dụ: bạn có lược đồ sales có bảng staff và lược đồ public cũng có bảng staff. Khi muốn access bảng staff thì sẽ ghi như sau:

sales.staff

hoặc

public.staff
2. Tại sao cần sử dụng schema?

2. Tại sao cần sử dụng schema?

Có một số kịch bản mà bạn muốn sử dụng schema (lược đồ):

  1. Các schema cho phép bạn sắp xếp, nhóm các đối tượng cơ sở dữ liệu, ví dụ: các bảng thành các nhóm logic để làm cho chúng dễ quản lý hơn.
  2. Các schema 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 lẫn nhau.
3. public schema là gì?

3. public schema là gì?

PostgreSQL tạo một lược đồ có tên public cho mọi cơ sở dữ liệu mới.

Bất cứ đối tượng nào bạn tạo mà không chỉ định tên lược đồ, PostgreSQL sẽ tự động đặt nó vào lược đồ public này. Do đó, các cách ghi sau là tương đương:

CREATE TABLE table_name(...);

hoặc

CREATE TABLE public.table_name(...);
4. PostgreSQL schema và các đặc quyền

4. PostgreSQL schema và các đặc quyền

Người dùng (users) chỉ có thể truy cập các đối tượng trong lược đồ mà họ sở hữu. Điều đó có nghĩa là họ không thể truy cập bất kỳ đối tượng nào trong các lược đồ không thuộc về họ.

Để cho phép người dùng truy cập các đối tượng trong lược đồ mà họ không sở hữu, bạn phải cấp đặc quyền USAGE (sử dụng) cho người dùng đó trên lược đồ như sau:

GRANT USAGE ON SCHEMA schema_name TO user_name;

Để cho phép người dùng tạo các đối tượng trong lược đồ mà họ không sở hữu, bạn cần cấp cho họ đặc quyền CREATE trên lược đồ.

GRANT CREATE ON SCHEMA schema_name TO user_name;

※Lưu ý: theo mặc định, mọi người dùng đều có CREATEUSAGE (sử dụng) trên lược đồ public.

5. Các thao tác với PostgreSQL schema

5. Các thao tác với PostgreSQL schema

  • Để tạo một lược đồ mới, bạn sử dụng câu lệnh CREATE SCHEMA.
  • Để đổi tên lược đồ hoặc thay đổi chủ sở hữu của nó, bạn sử dụng câu lệnh ALTER SCHEMA.
  • Để xóa một lược đồ, bạn sử dụng câu lệnh DROP SCHEMA.
Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!

Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp bạn đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

Translate »