Managing permissions
Pulsar 允许您授予用户命名空间级别或主题级别权限。
如果您授予用户命名空间级别权限,用户可以访问命名空间下的所有主题。
如果您授予用户主题级权限,用户只能访问主题。
以下章节演示如何授予用户命名空间级权限。 如何授予用户主题级权限,请参阅 管理主题。
你可以授权给指定的角色一系列操作权限,例如 produce
和 consume
。
pulsar-admin
Java
使用 子命令指定命名空间,通过 --actions
flag 指定操作,通过 --role
flag 指定角色:
当设置 broker.conf
中的authorizationAllowWildcardsMatching
为 true
时,可以使用通配符授权。
例如:
角色 my.role.1
、my.role.2
、my.role.foo
、my.role.bar
等都可以生产和消费消息。
角色 1.role.my
、2.role.my
、foo.role.my
、bar.role.my
等都可以生产和消费消息。
Note: A wildcard matching works at the beginning or end of the role name only.
例如:
In this case, only the role has permissions.
Roles my.1.role
, my.2.role
, my.foo.role
, my.bar.role
, etc. cannot produce and consume.
POST /admin/v2/namespaces/:tenant/:namespace/permissions/:role
admin.namespaces().grantPermissionOnNamespace(namespace, role, getAuthActions(actions));
pulsar-admin
REST API
Java
使用 子命令,指定命名空间:
$ pulsar-admin namespaces permissions test-tenant/ns1{ "admin10": [ "produce", "consume" ]}
GET /admin/v2/namespaces/:tenant/:namespace/permissions
取消某些角色的权限后,这些角色将不再可以访问指定的命名空间。
pulsar-admin
REST API
Java
使用 子命令,使用--role
flag 指定命名空间和角色:
$ pulsar-admin namespaces revoke-permission test-tenant/ns1 \ --role admin10
admin.namespaces().revokePermissionsOnNamespace(namespace, role);