Skip to content

docs(#2810): B2 grant via external_privileges_role; DEV+PROD live - #2849

Merged
jung-thomas merged 1 commit into
DEVfrom
docs/2810-external-privileges-role
Oct 19, 2026
Merged

jung-thomas merged 1 commit into
DEVfrom
docs/2810-external-privileges-role

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

Final doc correction for the HANA↔AI Core setup. The container's EXECUTE grant on the remote source belongs on the broker-created <schema>::external_privileges_role — SAP HDI's documented path for access to objects outside the container.

Why this (and not the earlier attempts)

  • Not a specific _RT user: each CF binding mints a new _RT user (PROD has 9), so a per-user grant breaks on rebind — and fails outright once a binding is gone (invalid user name, which is how the first PROD B2 attempt failed).
  • Not default_access_role.hdbrole: that artifact revokes the container's default run-time-schema permissions as a side effect, and #OO can't grant EXECUTE on a remote source it doesn't own.
  • external_privileges_role is auto-assigned to every binding user and persists for the life of the container → rebind-proof, no deploy, no grantor service.

Verified on DEV + PROD (2026-10-19)

A container _RT user inheriting only ::external_privileges_role (no direct grant) returned a 1536-dim text-embedding-3-small vector via TUTORIALS_AICORE in both environments.

Changes

  • Runbook B2 rewritten to the external_privileges_role grant (DEV + PROD SQL), with explicit "do NOT grant to _RT" / "do NOT use default_access_role" guidance and a verify query.
  • PROD section marked DONE (both tiers live).
  • Status + tier table updated.

Issue #2810's basic-setup goal (connect AI Core to HANA, prove VECTOR_EMBEDDING from the DB layer) is now complete on both tiers in both environments. Moving existing Node/CAP embeddings into the DB is the separate follow-up unit.

The container EXECUTE grant on the AI Core remote source belongs on the
broker-created <schema>::external_privileges_role (SAP HDI's documented
path for external-object access), NOT a specific _RT user and NOT
default_access_role.hdbrole:
- each CF binding mints a new _RT user, so a per-user grant breaks on
  rebind (and fails outright if the binding is gone: 'invalid user name');
- the role is auto-assigned to every binding user and persists for the
  life of the container;
- default_access_role.hdbrole would REVOKE the container's default
  run-time-schema permissions as a side effect, and #OO can't grant
  EXECUTE on a remote source it doesn't own.

Verified on DEV + PROD (2026-10-19): a container _RT user inheriting only
::external_privileges_role returned a 1536-dim text-embedding-3-small
vector via TUTORIALS_AICORE. PROD section marked DONE.
@jung-thomas
jung-thomas merged commit 8e16743 into DEV Oct 19, 2026
4 checks passed
@jung-thomas
jung-thomas deleted the docs/2810-external-privileges-role branch October 19, 2026 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant