PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách đặt mật khẩu người dùng mặc định trong PostgreSQL

Thứ nhất, điều quan trọng cần hiểu là đối với hầu hết các bản phân phối Unix, người dùng Postgres mặc định không yêu cầu hay sử dụng mật khẩu để xác thực. Thay vào đó, tùy thuộc vào cách Postgres được cài đặt ban đầu và phiên bản bạn đang sử dụng, phương thức xác thực mặc định sẽ là ident hoặc peer .

ident xác thực sử dụng máy chủ nhận dạng của hệ điều hành đang chạy ở cổng TCP 113 để xác minh thông tin đăng nhập của người dùng.

peer mặt khác, xác thực được sử dụng cho các kết nối cục bộ và xác minh rằng tên người dùng đã đăng nhập của hệ điều hành khớp với tên người dùng cho cơ sở dữ liệu Postgres.

Đăng nhập và kết nối với tư cách người dùng mặc định

Đối với hầu hết các hệ thống, người dùng Postgres mặc định là postgres và mật khẩu không cần thiết để xác thực. Do đó, để thêm mật khẩu, trước tiên chúng ta phải đăng nhập và kết nối với tư cách là postgres người dùng.

$ sudo -u postgres psql

Nếu bạn đã kết nối thành công và đang xem psql nhắc, hãy chuyển xuống phần Thay đổi mật khẩu phần.

Nếu bạn gặp lỗi cho biết cơ sở dữ liệu “postgres” không tồn tại, hãy thử kết nối với template1 cơ sở dữ liệu thay thế và nếu thành công, hãy tiếp tục Thay đổi mật khẩu .

$ sudo -u postgres psql template1

Lỗi xác thực

Nếu bạn gặp lỗi xác thực khi cố gắng kết nối với psql khách hàng, bạn có thể cần phải thay đổi tệp cấu hình xác thực Postgres (pg_hfa.conf).

Mở tệp cấu hình, thường nằm tại /etc/postgresql/#.#/main/pg_hba.conf , trong đó #.# là phiên bản Postgres bạn đang sử dụng:

$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf

Tệp cấu hình xác thực là một danh sách các quy tắc xác thực. Cuộn xuống tệp cho đến khi bạn tìm thấy dòng đầu tiên hiển thị postgres người dùng trong cột thứ ba (nếu dòng như vậy tồn tại). Bỏ ghi chú dòng nếu cần (bỏ dấu chấm phẩy), hoặc nếu thiếu hoàn toàn dòng, hãy thêm dòng sau vào đầu tệp và lưu các thay đổi của bạn:

local all postgres peer

Quy tắc xác thực này chỉ cho Postgres biết rằng đối với các kết nối cục bộ được thiết lập cho tất cả cơ sở dữ liệu cho người dùng postgres , xác thực bằng peer giao thức.

Lưu ý:Một số phiên bản cũ hơn của Postgres thích phương pháp xác thực danh tính mặc định, nhưng hầu hết các cài đặt hiện đại sẽ sử dụng tính năng ngang hàng như được chỉ định ở trên. Bạn có thể cần phải kiểm tra cả hai nếu kết quả của bạn khác nhau.

Bây giờ với tệp cấu hình của bạn đã được cập nhật, hãy lặp lại các bước trong phần Đăng nhập và kết nối với tư cách người dùng mặc định phần để cố gắng kết nối làm postgres mặc định người dùng. Sau khi thành công, hãy tiến hành thay đổi mật khẩu.

Thay đổi mật khẩu

Với kết nối hiện đã được thiết lập với Postgres tại psql nhắc, phát hành ALTER USER lệnh thay đổi mật khẩu cho postgres người dùng:

postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE

Nếu thành công, Postgres sẽ xuất ra thông báo xác nhận về ALTER ROLE như đã thấy ở trên.

Cuối cùng, thoát khỏi psql bằng cách sử dụng \q lệnh.

postgres=# \q

Bạn đã hoàn tất. postgres mặc định người dùng hiện có một mật khẩu được liên kết với tài khoản để sử dụng trong các ứng dụng khác của bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khớp cụm từ kết thúc bằng tiền tố với tìm kiếm toàn văn

  2. Đặt lại giá trị trình tự là 1

  3. Cách thoát khỏi tiện ích dòng lệnh PostgreSQL:psql

  4. Oracle đến PostgreSQL:Cú pháp nối ngoài ANSI trong PostgreSQL

  5. Chuyển đổi một kết quả sql để một cột chuyển sang nhiều cột