在OceanBase数据库中,角色的权限是由数据库管理员(DBA)设置的,而不是由普通用户设置的。当你创建一个角色并为其分配权限时,这些权限只是赋予了这个角色,而不是直接赋予了拥有这个角色的用户。然后,用户可以通过扮演这个角色来获得这些权限。
这就是为什么你需要为扮演这个角色的用户赋权的原因。只有当用户扮演了这个角色时,他们才能使用这个角色拥有的权限。
你提到的方式是否为STS方式,我无法直接判断,因为我无法看到你的具体代码和配置。但是,如果你的代码和配置符合STS(Server Token Service)的原则,即服务器令牌服务,那么应该没有问题。STS原则通常包括以下几个部分:
- 用户通过客户端请求资源服务器,资源服务器要求用户提供令牌。
- 用户向认证服务器(Authentication Server)请求令牌,认证服务器对用户进行认证,如果认证成功,则返回给用户一个令牌。
- 用户将这个令牌提供给资源服务器,资源服务器使用令牌向认证服务器验证用户的身份。
如果你的代码和配置符合这个原则,那么即使你没有直接为扮演角色的用户赋权,也应该没有问题。如果你不确定你的代码和配置是否符合STS原则,建议你查阅相关的技术文档或者联系OceanBase的技术支持获取帮助。