metricsign
Start free
Medium severitypermission

Power BI Refresh Error:
229

What does this error mean?

The login or database user lacks EXECUTE permission on the specified stored procedure, function, or extended stored procedure.

Common causes

  • 1The ADF or Power BI service account is not granted EXECUTE on the stored proc used in the pipeline
  • 2The user is in db_datareader but not db_executor role
  • 3The stored procedure was recently created without re-granting permissions

How to fix it

  1. 1Step 1: Grant EXECUTE on the specific object: GRANT EXECUTE ON [schema].[procedure_name] TO [username];
  2. 2Step 2: Or grant EXECUTE on the entire schema: GRANT EXECUTE ON SCHEMA::[dbo] TO [username];
  3. 3Step 3: For a service account that needs broad read + exec access, add to db_datareader and grant schema-level execute rather than granting object by object.

Frequently asked questions

How do I check what permissions a user has on a stored procedure?

Run: SELECT * FROM fn_my_permissions('[schema].[proc]', 'OBJECT'); — or for another user: EXECUTE AS USER = 'username'; SELECT * FROM fn_my_permissions('[schema].[proc]', 'OBJECT'); REVERT;

Does granting SELECT on a schema also grant EXECUTE?

No — SELECT and EXECUTE are separate permissions. You must explicitly grant EXECUTE either on the schema or on individual procedures.

Can I use a role to manage EXECUTE permissions?

Yes — create a custom role: CREATE ROLE [db_executor]; GRANT EXECUTE ON SCHEMA::dbo TO [db_executor]; then add users: ALTER ROLE [db_executor] ADD MEMBER [username];

Official documentation: https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-229-database-engine-error

Other permission errors