Ezreal 书架 Ezreal 书架
Home
  • 《Go程序员面试笔试宝典》
  • 《RabbitMQ 实战指南》
  • 《深入理解kafka》
  • MySQL45讲
  • 透视HTTP协议
  • 结构化数据的分布式存储系统
  • Raft 共识算法
Home
  • 《Go程序员面试笔试宝典》
  • 《RabbitMQ 实战指南》
  • 《深入理解kafka》
  • MySQL45讲
  • 透视HTTP协议
  • 结构化数据的分布式存储系统
  • Raft 共识算法
  • RabbitMQ简介

  • RabbitMQ 入门

  • 客户端开发向导

  • RabbitMQ 进阶

  • RabbitMQ 管理

    • 多租户与权限
    • 用户管理
    • Web端管理
  • RabbitMQ实战指南
  • RabbitMQ 管理
ezreal_rao
2023-04-22

用户管理

在 RabbitMQ 中,用户是访问控制 (Access Control) 的基本单元 ,且单个用户可以跨越多个 vhost 进行授权。针对一至多个 vhost ,用户可以被赋予不同级别的访问权限,并使用标准的用户名和密码来认证用户。

创建用户的命令为 rabbitmqctl add_user {username} {password} 。其中 username 表示要创建的用户名称;password 表示创建用户登录的密码。

具体创建一个用户名为 root、 密码为 root123 的用户:

我已经创建了一个 root 用户,所以创建一个其他用户

root@81f22c059192:/# rabbitmqctl add_user test test1
Adding user "test" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
root@81f22c059192:/#
1
2
3
4

可以通过 rabbitmqctl change_password {username} {newpassword} 命令来更改指定用户的密码 , 其中 username 表示要变更密码的用户名称,newpassword 表示要变更的新的密码。

举例 ,将 root 用户 的密码变更为 root321:

root@81f22c059192:/# rabbitmqctl change_password test test2
Changing password for user "test" ...
root@81f22c059192:/#
1
2
3

同样可以清除密码,这样用户就不能使用密码登录了,对应的操作命令为 rabbitmqctl clear_password {username} ,其中 username 表示要清除密码的用户名称。

root@81f22c059192:/# rabbitmqctl clear_password test
Clearing password for user "test" ...
root@81f22c059192:/#
1
2
3

使用 rabbitmqctl authenticate_user {userηame} {password} 可以通过密码来验证用户,其中 username 表示需要被验证的用户名称, password 表示密码 。

下面示例中分别采用 root321 和 root322 来验证 root 用户 :

root@81f22c059192:/# rabbitmqctl authenticate_user root root
Authenticating user "root" ...
Success
root@81f22c059192:/# rabbitmqctl authenticate_user root root1
Authenticating user "root" ...
Error:
Error: failed to authenticate user "root"
user 'root' - invalid credentials
root@81f22c059192:/#
1
2
3
4
5
6
7
8
9

删除用户的命令是 rabbitmqctl delete_user {username} ,其中 username 表示要删除的用户名称。

删除 root 用户的示例如下:

root@81f22c059192:/# rabbitmqctl delete_user test
Deleting user "test" ...
root@81f22c059192:/#
1
2
3

rabbitmqctl list_users 命令可以用来罗列当前的所有用户 。每个结果行都包含用户名称,其后紧跟用户的角色 (tags)。

示例如下:

root@81f22c059192:/# rabbitmqctl list_users
Listing users ...
user	tags
guest	[administrator]
root	[administrator]
1
2
3
4
5

用户的角色分为 5 种类型。

  • none: 无任何角色。新创建的用户的角色默认为 none 。
  • management: 可以访问 Web 管理页面。 Web 管理页面在 5.3 节中会有详细介绍 。
  • policymaker: 包含 management 的所有权限,并且可以 管理策略 (Policy) 和参数 ( Parameter )。详细内容可参考 6.3 节。
  • monitoring: 包含 management 的所有权限,并且可以看到所有连接、信道及节点相关的信息。
  • administartor: 包含 monitoring 的所有权限,井且可以管理用户、 虚拟主机、权限、策略、参数等。 administator 代表了最高的权限 。

用户的角色可以通过 rabbitmqctl set_user_tags {username} {tag ... } 命令设置 。 其中 username 参数表示需要设置角色的用户名称;tag 参数用于设置 0 个、l 个或者多个的角色,设置之后任何之前现有的身份都会被删除。

示例如下 :

root@81f22c059192:/# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [administrator] ...
root@81f22c059192:/# rabbitmqctl list_users
Listing users ...
user	tags
guest	[administrator]
root	[administrator,monitoring]
root@81f22c059192:/#
1
2
3
4
5
6
7
8
#mq#rabbitmq#amq
上次更新: 5/9/2023, 10:58:32 AM
多租户与权限
Web端管理

← 多租户与权限 Web端管理→

最近更新
01
为什么我的MySQL会抖一下
07-15
02
HTTP 性能优化面面观
07-12
03
WebSocket:沙盒里的 TCP
07-12
更多文章>
Theme by Vdoing | Copyright © 2022-2024 Ezreal Rao | CC BY-NC-SA 4.0
豫ICP备2023001810号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式