MetricSign
EN|NLRequest Access
Medium severityaccess control

Power BI Refresh Error:
Snowflake CALL Stored Procedure Insufficient Privileges

What does this error mean?

A CALL statement failed because the executing role lacks USAGE privilege on the stored procedure, or because the procedure's EXECUTE AS logic prevents the caller from running it.

Common causes

  • 1Executing role not granted USAGE privilege on the stored procedure
  • 2Stored procedure defined with EXECUTE AS OWNER but the owner's privileges have been revoked
  • 3Stored procedure defined with EXECUTE AS CALLER but the caller lacks the required object privileges for operations inside the procedure
  • 4Procedure created by a different role and not shared via GRANT
  • 5Schema or database USAGE privilege missing, preventing the role from even seeing the procedure

How to fix it

  1. 1Grant USAGE on the procedure: `GRANT USAGE ON PROCEDURE <proc>(arg_types) TO ROLE <role>`
  2. 2If the procedure uses EXECUTE AS OWNER, verify the owner role still has all required object privileges
  3. 3If using EXECUTE AS CALLER, grant the caller all privileges the procedure needs at the object level
  4. 4Check the procedure definition: `DESCRIBE PROCEDURE <proc>(arg_types)` to see the EXECUTE AS setting
  5. 5Use `SHOW GRANTS ON PROCEDURE <proc>(arg_types)` to audit current privilege assignments

Frequently asked questions

What is the difference between EXECUTE AS OWNER and EXECUTE AS CALLER?

EXECUTE AS OWNER runs the procedure with the owner role's privileges regardless of who calls it. EXECUTE AS CALLER runs with the caller's privileges, requiring the caller to have all necessary object access.

Other access control errors