Có cách nào để ngăn người dùng PostgreSQL thay đổi mật khẩu của chính họ không?


7

Tôi đang quản trị một máy chủ PotsgreQuery và gần đây tôi nhận ra rằng những người dùng "không chuyên nghiệp" của tôi có khả năng thay đổi mật khẩu an toàn mà tôi gán cho những người không an toàn.

Tôi đã tìm kiếm trong các REVOKEtài liệu, nhưng tôi không thể tìm ra cách nào để ngăn chặn điều đó. Điều đó là có thể?

Cảm ơn trước!


4
Bạn có thực sự muốn ngăn họ thay đổi mật khẩu của mình không, hay bạn muốn ngăn họ đặt mật khẩu mới trừ khi nó an toàn một cách hợp lý?
RDFozz

Câu trả lời:


6

AFAIK, không có cách nào để ngăn người dùng thay đổi mật khẩu của anh ấy / cô ấy. Nó đã được thảo luận (cách đây khá lâu) về ocassion trong danh sách gửi thư của PostgreSQL và tất cả các câu trả lời tôi nhớ về cơ bản là "không, bạn không thể" .

Tuy nhiên, có một mô-đun đóng góp, được gọi passwordcheck, với mục tiêu là đảm bảo độ mạnh của mật khẩu, nếu đó là điều bạn muốn (như đã nhận xét bởi @RDFozz).

Từ các tài liệu:

Các passwordcheckmật khẩu người dùng kiểm tra mô-đun bất cứ khi nào họ được thiết lập với CREATE ROLEhoặc ALTER ROLE. Nếu mật khẩu được coi là quá yếu, nó sẽ bị từ chối và lệnh sẽ chấm dứt với một lỗi.

Để kích hoạt mô-đun này, thêm '$libdir/passwordcheck'vào shared_preload_librariestrong postgresql.conf, sau đó khởi động lại máy chủ.

Tôi chưa bao giờ sử dụng mô-đun bản thân mình.


4
Câu trả lời tuyệt vời không biết về passwordcheck.
Evan Carroll

1
Bạn có thể sử dụng cùng một hook passwordchecksử dụng để từ chối thay đổi mật khẩu, tôi mong đợi. Bạn sẽ phải viết một phần mở rộng C.
Craig Ringer

1
@CraigRinger: Tôi giả sử bạn chỉ có thể sửa đổi passwordcheckhoặc định cấu hình nó theo cách nó từ chối mọi thay đổi mật khẩu (giả sử, về mặt khái niệm, bạn yêu cầu tất cả mật khẩu mới có độ dài 1.000 ký tự, được tạo bằng các ký tự ASCII khác nhau). Tuy nhiên, điều này sẽ "đóng băng" bất kỳ vai trò nào đã được xác định và không cho phép thay đổi hoặc bổ sung ... Có lẽ là một kịch bản nguy hiểm.
joanolo

1
Tài khoản có nghĩa là 4 ký tự đầu tiên của mật khẩu đại diện cho tổng kiểm tra mật mã của phần còn lại của mật khẩu, sau đó ericgcc có thể tạo và đặt mật khẩu nhưng người dùng sẽ không thể đặt mật khẩu đáp ứng bài kiểm tra. Nhưng mật khẩu sẽ còn dài hơn mức cần thiết.
Robert Carnegie

1
Suy nghĩ lại: để ngăn chặn việc sử dụng lại mật khẩu (mà tôi đã bỏ qua), bạn có thể cấp mật khẩu đã ký, sau đó thay đổi muối của công thức checkign để không thể thiết lập lại mật khẩu đó. Điều này sẽ đánh bại những người dùng quyết định việc đặt mật khẩu của mọi người là giống nhau dễ dàng hơn ... cho đến khi bạn phải đưa ra một mật khẩu khác. Đó là nếu Postgresql hoặc passwordcheck không ngăn chặn việc sử dụng lại mật khẩu (dù sao việc sử dụng lại mật khẩu mà một người dùng khác đã sử dụng là không rõ ràng).
Robert Carnegie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.