PostgreSQL

Lệnh DROP OWNED xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể

Lệnh DROP OWNED xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể
Đượ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 sẽ mô tả cách sử dụng lệnh DROP OWNED để xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể.

Lệnh DROP OWNED được sử dụng khi bạn muốn xóa các đối tượng thuộc sở hữu của role trước khi xóa role đó.

Cú pháp lệnh:

DROP OWNED BY { role_name | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]

Xóa các đối tượng thuộc sở hữu của role_name được chỉ định. Nó cũng loại bỏ bất kỳ đặc quyền nào được thêm vào role được chỉ định trong cơ sở dữ liệu hiện tại.

Nếu CASCADE được thêm vào thì các đối tượng phụ thuộc hay liên quan đến role được chỉ định sẽ bị xóa và tất cả các đối tượng phụ thuộc vào các đối tượng bị xóa đó cũng sẽ tự động bị xóa.

Nếu RESTRICT được thêm vào thì việc xóa sẽ bị hủy nếu có các cơ sở dữ liệu khác phụ thuộc vào đối tượng cần xóa. Nếu không được chỉ định rõ ràng, mặc định được coi là có RESTRICT.


Bây giờ sẽ đi vào ví dụ thực tế xem thế nào. Let’s Go!

Hiện trong database mydb có một schema momo được sở hữu bởi role nihongo:

¥dn

Lệnh DROP OWNED xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể (1)

Ngoài ra, bảng marketing đã được tạo trong lược đồ public cũng được sở hữu bởi role nihongo:

¥dt

Lệnh DROP OWNED xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể (2)

Và đặc quyền r(SELECT) đã được thêm vào role nihongo cho bảng product trong lược đồ public:

¥dp

Lệnh DROP OWNED xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể (3)

Bây giờ, chúng ta sẽ xóa các đối tượng thuộc sở hữu của role nihongo trong cơ sở dữ liệu mydb. Thực hiện các lệnh sau khi kết nối như một superuser, chẳng hạn là postgres.

DROP OWNED BY nihongo;

Lệnh DROP OWNED xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể (4)

Các đối tượng thuộc sở hữu của role nihongo trong cơ sở dữ liệu mydb đã bị xóa cùng nhau:

Lệnh DROP OWNED xóa tất cả các đối tượng cơ sở dữ liệu thuộc sở hữu của một role cụ thể (5)

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[...]

1 bình luận

Translate »