Điểm:0

Dovecot SQL password_query UNION

lá cờ cn

Tôi có các bảng Người dùng và Tên miền riêng biệt. Khi một miền được đánh dấu là không hoạt động, tôi muốn tất cả người dùng cho miền đó không xác thực được.

Truy vấn này hoạt động tốt.

password_query = \
         CHỌN CONCAT("5500") AS gid, CONCAT("5500") AS uid, \
         CONCAT("/mail/dir/",'%d','/','%n') AS home,Email as User, Password as password \
         TỪ users_table WHERE Email='%u' AND active=1;

Bây giờ tôi đang cố gắng thêm kiểm tra xem tên miền có được đánh dấu là đang hoạt động hay không. Thêm CHỌN Tên miền TỪ UNION domains_table. (Tôi sẽ mở rộng sau) Nhưng khi tôi thêm phần này, truy vấn không thành công. Tên bảng và tiêu đề là chính xác. Tại sao dòng này khiến truy vấn không thành công?

Ngoài ra, các câu điều kiện có được hỗ trợ ở đây không? Tôi muốn thêm NẾU (tên miền đang hoạt động) THÌ (chuyển truy vấn)

password_query = \
         CHỌN Tên miền TỪ domains_table \
         UNION CHỌN CONCAT("5500") AS gid, CONCAT("5500") AS uid, \
         CONCAT("/mail/dir/",'%d','/','%n') AS home,Email as User, Password as password \
         TỪ users_table WHERE Email='%u' AND active=1;

Mỗi truy vấn dường như chỉ hoạt động nếu chúng trả về các biến gid, uid, home, user & password.

Cảm ơn

Điểm:0
lá cờ cn

Đã giải quyết vấn đề bằng cách làm như sau.

  1. Đã bật auth-deny.conf.ext bằng cách bỏ ghi chú trong dovecot.conf

  2. Thay đổi auth-deny.conf.ext để sử dụng trình điều khiển sql và thêm một tệp mới là arg.

  3. trong tệp mới đã thêm một password_query khác với đoạn mã sau trả về một phủ nhận Biến đổi

    mật khẩu_query =
    CHỌN ('%u') NHƯ từ chối TỪ domain_table WHERE DomainName ='%d' AND active=0 ;

Điều này có vẻ giống như một chút hack, trong nhật ký có ghi Truy vấn mật khẩu phải trả về trường có tên 'mật khẩu' là lý do auth không thành công. Nhưng nó hoạt động. Bất cứ ai có một cách tốt hơn?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.