2014-10-20 24 views
7

tôi tạo vhost:Truy cập từ chối cho người dùng RabbitMQ & cần tây

rabbitmqctl add_vhost test 

Sau đó, người sử dụng:

rabbitmqctl add_user user 123456 

Sau đó, tôi lấy quyền người dùng:

rabbitmqctl set_permissions -p test user "test" "test" "test" 

tôi sử dụng cần tây, trong tasks.py:

app = Celery('tasks', broker='amqp://user:[email protected]/test', backend='amqp://user:[email protected]/test') 

Sau đó, tôi chạy:

celery -A tasks worker --loglevel=info 

Tôi có lỗi:

amqp.exceptions.AccessRefused: Exchange.declare: (403) ACCESS_REFUSED - access to exchange 'celeryev' in vhost 'test' refused for user 'user' 

Làm thế nào để khắc phục điều đó?

Cảm ơn!

Trả lời

9

Hãy xem set_permissions đây: https://www.rabbitmq.com/man/rabbitmqctl.1.man.html#Access%20control

Khi bạn gọi set_permissions bạn đang đi qua "thử nghiệm" cho cấu hình, đọc và viết, vì vậy người dùng của bạn sẽ có thể chỉ sử dụng một hàng đợi/trao đổi bằng cái tên " test"

Ngoài ra, hãy nhìn vào liên kết này cũng như: https://www.rabbitmq.com/access-control.html

+0

Cảm ơn. Tôi thử với 'celeryev' trong set_permissions và tôi gặp lỗi khi trao đổi' reply.celery.pidbox', vì vậy bây giờ tôi sử dụng '. *' Và nó hoạt động. Liệu nó có tiết kiệm hay tôi cần sử dụng cụm từ thông dụng 'cần tây'? – tim

+0

cụm từ thông dụng cần khớp với tên của hàng đợi/trao đổi mà bạn định tạo. –

0

Nếu bạn vẫn còn có lỗi xin vui lòng kiểm tra xem bạn có dấu ngoặc kép đúng (xảy ra với tôi)

".*" 
01.

thay vì

“.*” 

Để chắc chắn, danh sách cho phép từ người dùng trong vhostpath của bạn (theo mặc định /)

rabbitmqctl list_permissions -p/ 
Các vấn đề liên quan