Cách tạo người dùng trong PostgreSQL Sử dụng PgAdmin

⚡ Tóm tắt thông minh

Tạo người dùng trong PostgreSQL Việc này có thể được thực hiện trực quan trong pgAdmin hoặc bằng lệnh CREATE USER trong SQL Shell. Sau đó, bạn có thể cấp quyền bằng GRANT, sửa đổi vai trò bằng ALTER USER và xóa tài khoản bằng DROP USER.

  • 🖱️ Tạo trong pgAdmin: Nhấp chuột phải vào Đăng nhập/Vai trò nhóm, nhập tên, đặt mật khẩu và quyền hạn, sau đó lưu để tạo người dùng.
  • 💻 Lệnh TẠO NGƯỜI DÙNG: Trong SQL Shell, lệnh CREATE USER name WITH options thiết lập tên đăng nhập, người dùng quản trị và mật khẩu chỉ trong một lệnh duy nhất.
  • 🔑 Cấp phép truy cập: Lệnh GRANT ALL PRIVILEGES ON DATABASE db TO user cấp quyền truy cập vào cơ sở dữ liệu cho người dùng hiện có.
  • 🔧 THAY ĐỔI NGƯỜI DÙNG: Lệnh ALTER USER điều chỉnh quyền hạn của một vai trò, thêm hoặc thu hồi các đặc quyền như SUPERUSER.
  • 🗑️ BỎ NGƯỜI DÙNG: Lệnh DROP USER xóa một tài khoản, nhưng chỉ khi tài khoản đó không còn sở hữu bất kỳ đối tượng nào trong cơ sở dữ liệu nữa.
  • 🧾 Vai trò so với Người dùng: Lệnh CREATE USER mặc định là LOGIN, trong khi lệnh CREATE ROLE mặc định là NOLOGIIN; ngoài ra, chúng giống nhau.

Cách tạo người dùng trong PostgreSQL Sử dụng PgAdmin

Làm thế nào để tạo ra PostgreSQL Người dùng trong PGAdmin

Sau đây là quy trình từng bước về cách tạo người dùng trong PostgreSQL PGAdmin:

Bước 1) Nhấp chuột phải vào Đăng nhập

Ở bước đầu tiên, Nhấp chuột phải vào Vai trò nhóm đăng nhập -> Tạo -> Nhấp vào Vai trò nhóm đăng nhập…

Tạo PostgreSQL Người dùng trong PGAdmin

Bước 2) Tạo vai trò đăng nhập/nhóm

Bây giờ, Nhập tên cho Đăng nhập

Tạo PostgreSQL Người dùng trong PGAdmin

Bước 3) Nhấp vào Định nghĩa & Nhập Chi tiết

  1. Nhập mật khẩu
  2. Ngày hết hạn của tài khoản

Tạo PostgreSQL Người dùng trong PGAdmin

Bước 4) Phần Đặc quyền

  1. Toggle Nút Có thể đăng nhập thành CÓ
  2. Toggle Siêu người dùng thành CÓ

Tạo PostgreSQL Người dùng trong PGAdmin

Bước 5) SQL phần

  1. Bạn sẽ thấy truy vấn SQL để tạo người dùng theo các lựa chọn được thực hiện ở các bước trước
  2. Nhấp vào nút Lưu

Tạo PostgreSQL Người dùng trong PGAdmin

Bước 6) Vai trò được tạo

Bây giờ, Vai trò được phản ánh trong cây đối tượng.

Tạo PostgreSQL Người dùng trong PGAdmin

Bước 7) Tạo ra một Cơ sở dữ liệu

Bây giờ, chỉ định chủ sở hữu myguru cho nó như trong ví dụ tạo người dùng Postgres bên dưới.

Tạo PostgreSQL Người dùng trong PGAdmin

Bước 8) Dòng lệnh

Bây giờ, bạn có thể thấy chủ sở hữu là myguru.

Tạo PostgreSQL Người dùng trong PGAdmin

PostgreSQL Tạo SQLShell người dùng (Dòng lệnh)

Bạn có thể tạo người dùng bằng cách sử dụng lệnh dòng lệnh

TẠO NGƯỜI DÙNG

Phương thức tạo người dùng bằng mật khẩu Postgres này thuận tiện hơn cho các lập trình viên và quản trị viên vì họ có quyền truy cập vào bảng điều khiển của PostgreSQL máy chủ. Hơn nữa, họ cần tạo và thực thi người dùng Postgres bằng một lệnh duy nhất thay vì đăng nhập và sử dụng giao diện của PostgreSQL khách hàng.

Cú pháp:

CREATE USER name [ WITH ] option [ ... ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

Ví dụ:

CREATE USER tom;

sẽ tạo một người dùng tom

CREATE USER tom WITH SUPERUSER;

Sẽ tạo một người dùng tên là tom với quyền quản trị viên. Hãy xem ví dụ sau.

Bước 1) Chúng tôi đang tạo một siêu người dùng có hiệu lực đến 3rd Tháng 4 năm 2025, 11:50:38 IST. Nhập lệnh sau:

CREATE USER mytest WITH
	LOGIN
	SUPERUSER
	CREATEDB
	CREATEROLE
	INHERIT
	NOREPLICATION
	CONNECTION LIMIT -1
	VALID UNTIL '2025-04-03T11:50:38+05:30'
	PASSWORD '123456';

Tạo SQLShell người dùng

Bước 2) Nhập lệnh \du vào danh sách kiểm tra của người dùng

Tạo SQLShell người dùng

LƯU Ý: Lệnh CREATE USER tương tự như lệnh CREATE ROLE. Sự khác biệt giữa hai lệnh là khi viết lệnh CREATE user trong PostgreSQL, mặc định người dùng ở trạng thái LOGIN, trong khi đó khi sử dụng tùy chọn CREATE ROLE thì trạng thái LOGIN được giả định.

Thêm người dùng hiện có vào Cơ sở dữ liệu

Bạn có thể cấp đặc quyền cho người dùng để truy cập cơ sở dữ liệu.

Ví dụ: chúng tôi cấp cho người dùng “mytest” tất cả các đặc quyền đối với người dùng guru99

GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;

Thêm người dùng hiện có vào Cơ sở dữ liệu

Sau khi thực hiện các PostgreSQL thêm lệnh người dùng, người dùng sẽ có thể truy cập cơ sở dữ liệu với các quyền nhất định.

Lệnh GRANT rất mạnh mẽ. Bạn có thể cung cấp các đặc quyền chi tiết như Chọn, Chèn, Cập nhật cho người dùng.

PostgreSQL Đang cập nhật NGƯỜI DÙNG

Thay đổi quyền của người dùng hiện tại

Bây giờ người dùng mới của chúng tôi “mytest” đã tồn tại, bạn có thể sử dụng ALTER USER để thay đổi các quyền được cấp cho thủ thư.

Định dạng của ALTER USER Postgres bao gồm tên của người dùng, theo sau là một số tùy chọn để cho biết PostgreSQL những thay đổi được phép thực hiện:

ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

Revđồng ý Quyền

Bạn cần sử dụng lệnh này khi mắc lỗi và gán sai quyền mà bạn có thể muốn thu hồi. Bạn có thể sử dụng lệnh ALTER USER không có tiền tố trước các tùy chọn cho phép.

Ví dụ: chúng ta có thể xóa trạng thái SIÊU NGƯỜI DÙNG khỏi mytest như:

ALTER USER mytest WITH NOSUPERUSER;

Sử dụng \du, bạn sẽ thấy đặc quyền Superuser bị xóa.

Revđồng ý Quyền

Phân quyền

Bạn có thể sử dụng quyền người dùng SUPERUSER trở lại "mytest" bằng lệnh sau

ALTER USER mytest WITH SUPERUSER;

Sử dụng \du, bạn sẽ thấy đặc quyền Superuser đã được thêm vào.

Phân quyền

PostgreSQL Xóa người dùng

Bạn có thể sử dụng xóa bất kỳ người dùng nào nếu bạn chắc chắn rằng người dùng cụ thể đó không còn có trong cơ sở dữ liệu của bạn nữa. Lưu ý rằng việc xóa người dùng sẽ không bao giờ ảnh hưởng đến cơ sở dữ liệu thực tế.

Syntax: DROP USER [user]

Để xóa bất kỳ người dùng nào, bạn phải chắc chắn rằng người dùng đó là chủ sở hữu của cơ sở dữ liệu. Nếu không, bạn có thể nhận được thông báo lỗi.

ERROR:  role "username" cannot be dropped because some objects depend on it

Ví dụ:

  1. Tài khoản “myguru” là chủ sở hữu cơ sở dữ liệu “demoDB”.
  2. Nhập lệnh THẢ NGƯỜI DÙNG myguru
  3. Lỗi được hiển thị

PostgreSQL Xóa người dùng

Khi chúng tôi thay đổi chủ sở hữu cơ sở dữ liệu, người dùng có thể bị xóa

PostgreSQL Xóa người dùng

Cheat Sheet

Dưới đây là các lệnh quan trọng

Lệnh Mô tả Chi tiết
CREATE USER [user]
Lệnh tạo người dùng
ALTER USER role_specification
Thay đổi quyền của người dùng hiện tại
ALTER USER [user]
Revđồng ý Quyền
ALTER USER [user name] WITH SUPERUSER
Phân quyền
DROP USER [user]
Lệnh xóa người dùng

Câu Hỏi Thường Gặp

Trong trình shell psql, chạy lệnh \du để liệt kê tất cả các vai trò và thuộc tính của chúng. Bạn cũng có thể truy vấn danh mục hệ thống bằng lệnh SELECT rolname FROM pg_roles để lấy thông tin tương tự một cách lập trình.

Sử dụng lệnh ALTER USER, ví dụ: ALTER USER mytest WITH PASSWORD 'newpassword'. Thay đổi sẽ có hiệu lực ngay lập tức. Mật khẩu được lưu trữ dưới dạng mã hóa, và chỉ người dùng có quyền quản trị hoặc chính người dùng đó mới có thể thay đổi chúng.

In PostgreSQLNgười dùng và vai trò là cùng một đối tượng. Lệnh CREATE USER tạo ra một vai trò có thể đăng nhập theo mặc định, trong khi lệnh CREATE ROLE tạo ra một vai trò không thể đăng nhập trừ khi bạn thêm thuộc tính LOGIN.

Trí tuệ nhân tạo (AI) có thể tạo ra các câu lệnh CREATE USER, GRANT và ALTER USER từ một mô tả đơn giản về quyền truy cập bạn cần, và giải thích từng đặc quyền. Điều này giúp bạn áp dụng nguyên tắc bảo mật quyền hạn tối thiểu mà không cần phải ghi nhớ cú pháp.

Đúng vậy. Trí tuệ nhân tạo (AI) có thể đề xuất các lệnh GRANT chi tiết chỉ cấp các quyền cần thiết, cảnh báo về việc cấp quyền truy cập siêu người dùng quá rộng và khuyến nghị sử dụng vai trò để nhóm các quyền nhằm quản lý dễ dàng và an toàn hơn.

Tóm tắt bài viết này với: