PostgreSQL Cấp tất cả các đặc quyền trên lược đồ cho người dùng

Postgresql Cap Tat Ca Cac Dac Quyen Tren Luoc Do Cho Nguoi Dung



Cơ sở dữ liệu rất quan trọng và công việc của quản trị viên là kiểm soát những vai trò khác nhau mà người dùng có thể thực hiện trong một cơ sở dữ liệu nhất định. Là một phần của ủy quyền, quản trị viên có thể xác định các thực thể người dùng trong cơ sở dữ liệu và cấp hoặc thu hồi các đặc quyền khác nhau đối với các vai trò.

Bằng cách đó, bạn có quyền kiểm soát đối với những người có thể truy cập cơ sở dữ liệu và những đặc quyền mà họ có nếu họ có thể truy cập cơ sở dữ liệu. Chẳng hạn, bạn có thể thu hồi sửa đổi cơ sở dữ liệu hoặc cấp tất cả các đặc quyền trên lược đồ cho một hoặc nhiều người dùng trong một bảng nhất định. Hướng dẫn này trình bày chi tiết cách sử dụng PostgreSQL để cấp cho người dùng tất cả các đặc quyền trên lược đồ.







Cách cấp đặc quyền cho người dùng trên PostgreSQL

Khi bạn tạo một vai trò mới, theo mặc định, họ sẽ nhận được một số đặc quyền. Tuy nhiên, hầu hết các đặc quyền đều yêu cầu quản trị viên cấp chúng cho những người dùng khác nhau để điều chỉnh quyền truy cập và kiểm soát lược đồ. Bạn có thể cấp tất cả các đặc quyền cùng một lúc hoặc riêng biệt.



Đối với hướng dẫn này, hãy tạo một cái mới vai diễn đặt tên linuxhint1 .



$ sudo -iu postgres
# tạo vai trò linuxhint1 mật khẩu đăng nhập ‘linuxhint’;


Lưu ý rằng chúng tôi đã đăng nhập như thư mục, vai trò mặc định được tạo khi bạn cài đặt PostgreSQL.






Với vai trò (người dùng) đã tạo, chúng ta có thể liệt kê các vai trò khả dụng bằng lệnh sau:

# \ từ


Các vai trò khả dụng sẽ được hiển thị ở định dạng bảng.




postgres là vai trò mặc định và đã được cấp hầu hết các đặc quyền. Tuy nhiên, vai trò mới linuxhint1, không có đặc quyền cho đến khi chúng tôi cấp nó.

1. Cấp đặc quyền cụ thể cho người dùng

Vai trò đã tạo không thể sửa đổi lược đồ trừ khi bạn cho phép. Trước tiên hãy xác minh điều này bằng cách tạo một bảng làm vai trò mặc định, postgres.

# tạo tên bảng ( m_id int luôn được tạo như danh tính, fname vachar ( 100 ) không null, lname varchar ( 100 ) không null, tuổi int ) ;



Bạn có thể liệt kê các mối quan hệ có sẵn, như hình dưới đây:


Tiếp theo, mở trình bao mới và đăng nhập vào PostgreSQL bằng vai trò khác, linuxhint1, mà chúng tôi đã tạo trước đó bằng lệnh sau:

$ psql -TRONG linuxhint1 -d postgres



Các -d chỉ định rằng vai trò là sử dụng cơ sở dữ liệu Postgres.

Cố gắng đọc nội dung của bảng mà chúng tôi đã tạo bằng cách sử dụng LỰA CHỌN yêu cầu.

# LỰA CHỌN * TỪ tên;


Nó trả về một quyền bị từ chối lỗi cản trở người dùng truy cập vào bảng.


Trong trường hợp như vậy, chúng ta cần cấp quyền cho vai trò để chọn/xem dữ liệu từ bảng đã cho bằng cú pháp sau:

# CẤP tên_đặc quyền TRÊN tên_bảng ĐẾN tên_vai trò;


Để cấp các đặc quyền, hãy sử dụng phiên Postgres.


Sau khi được cấp, hãy thử chạy lại lệnh trước đó.


Đó là nó. Bạn đã quản lý để cấp đặc quyền được chọn cho người dùng cụ thể.

2. Cấp tất cả các đặc quyền trên lược đồ cho người dùng

Cho đến nay, chúng tôi chỉ cấp một đặc quyền trên lược đồ cho người dùng. Chà, như vậy là chưa đủ. Người dùng không thể sửa đổi lược đồ trừ khi bạn cấp cho nó tất cả các đặc quyền, chẳng hạn như chèn và cập nhật.

Có nhiều cách khác nhau để đạt được điều này. Đầu tiên, chúng ta hãy cấp cho người dùng tất cả các đặc quyền đối với một bảng nhất định sử dụng cú pháp sau:

# CẤP TẤT CẢ TRÊN table_name TO role_name;



Người dùng có thể tương tác và sửa đổi bảng cụ thể. Tuy nhiên, chúng không thể hoạt động với các bảng khác trong lược đồ.

Đến cấp tất cả các đặc quyền trên tất cả các bảng trong một lược đồ cụ thể , sử dụng cú pháp sau:

# CẤP TẤT CẢ TRÊN TẤT CẢ CÁC BẢNG TRONG SCHEMA schema_name TO role_name;



Cuối cùng, bạn có thể cấp các đặc quyền cụ thể, chẳng hạn như chèn hoặc chọn tất cả các bảng trên lược đồ cho một vai trò nhất định .

# CẤP đặc quyền_name TRÊN TẤT CẢ CÁC BẢNG TRONG SCHEMA schema_name TO role_name;



Vai trò có thể chọn dữ liệu trong tất cả các bảng trong lược đồ được chỉ định. Đó là cách bạn xác định những đặc quyền sẽ cấp trên lược đồ cho những người dùng khác nhau.

Sự kết luận

PostgreSQL là một DBMS mạnh mẽ. Nó có các tính năng khác nhau, bao gồm cho phép quản trị viên cấp các đặc quyền khác nhau cho người dùng. Cấp tất cả các đặc quyền trên lược đồ cho người dùng có nghĩa là cho phép người dùng sửa đổi và tương tác với tất cả các bảng trong lược đồ đã chỉ định. Chúng ta đã thấy cách áp dụng điều đó và các cách khác để cấp đặc quyền trên lược đồ cho các vai trò bằng cách sử dụng câu lệnh GRANT trong PostgreSQL.