diff --git a/pkg/connector/server_role.go b/pkg/connector/server_role.go index 5e02ad3..e5829e3 100644 --- a/pkg/connector/server_role.go +++ b/pkg/connector/server_role.go @@ -204,12 +204,11 @@ func (d *serverRolePrincipalSyncer) Grant(ctx context.Context, resource *v2.Reso // database-role:baton_test:6:member splitId := strings.Split(entitlement.Id, ":") - // id length is 3 - if len(splitId) != 3 { + if len(splitId) < 2 { return nil, nil, fmt.Errorf("unexpected entitlement id: %s", entitlement.Id) } - roleId := splitId[2] + roleId := splitId[len(splitId)-2] var role *mssqldb.RoleModel @@ -243,11 +242,11 @@ func (d *serverRolePrincipalSyncer) Revoke(ctx context.Context, grant *v2.Grant) // database-role:baton_test:6:member splitId := strings.Split(grant.Entitlement.Id, ":") - if len(splitId) != 3 { + if len(splitId) < 2 { return nil, fmt.Errorf("unexpected entitlement id: %s", grant.Entitlement.Id) } - roleId := splitId[2] + roleId := splitId[len(splitId)-2] role, err := d.client.GetServerRole(ctx, roleId) if err != nil {