rabbitmqctl
を使用してRabbitMQでユーザー権限を設定しようとしています。 RabbitMQのドキュメント http://www.rabbitmq.com/man/rabbitmqctl.1.man.html は、構成、書き込み、および読み取りのアクセス許可を設定する基本的な例を示しています。
rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"
ただし、これ以上詳細な例は示していません。このトピックに関するいくつかの投稿を確認しましたが、特定の質問に対する回答が見つかりませんでした。
最初の質問:ユーザーが書き込むことができるエクスチェンジとキューの両方にアクセス許可を付与する必要がありますか、それともエクスチェンジのみにアクセス許可を付与する必要がありますか?同様に、読み取りについては、キューを指定するだけで十分ですか?ドキュメントでは、「リソース」へのアクセスの許可について説明しています。
2番目の質問:上記の例では、キャレットを使用してリソース名の先頭をマークしています。これを省略して「tonyg-。*」を使用すると、指定したテキストをリソース名のどこにでも表示できるようになりますか?同様に、リソース名全体を指定する場合は、「^ myqueue $」のように、リソース名を^と$で囲む必要がありますか?
3番目の質問:特定の権限に対して複数のパターンを指定したいとします。パターンをカンマで区切ることはできますか?
rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*,^test-.*" ".*" ".*"
これはこれに対する正しい構文ですか?そうでない場合、何ですか?
4番目の質問:仮想ホスト名に必要な構文は何ですか?引用されたマニュアルページの他の例では、次のように先頭のスラッシュを使用していません。
rabbitmqctl add_vhost test
仮想ホスト名は何らかの方法で構造化されていますか、それともスラッシュは名前の別の文字ですか?
提案をありがとう!
私は同じ問題にぶつかりましたが、いくつかの簡単な実験の後、次のことを思いつきました。
最初に「/ ASX」という仮想ホストを追加し、次に「guest」ユーザーを次の形式で正常に追加しました。
rabbitmqctl set_permissions -p /ASX guest ".*" ".*" "."
Setting permissions for user "guest" in vhost "/ASX" ...
...done.
また、変更を有効にするには、rabbitmq-serverの再起動を実行する必要がありました。
このページでは、resource
の意味を詳しく説明しています。
http://pubs.vmware.com/vfabric5/index.jsp?topic=/com.vmware.vfabric.rabbitmq.2.4/admin-guide.html