How can we help you today? How can we help you today?
Jimmy Cook

Activity overview

Latest activity by Jimmy Cook

I've seen the same kind of issue when moving procedures between environments. In Azure SQL Database, especially with MS Entra ID (formerly Azure AD) authentication, permission checks can behave differently than on-prem SQL Server. Even if a stored procedure exists and runs fine on SQL Server without explicit SELECT permissions on underlying tables, Azure SQL may enforce stricter boundaries depending on how the procedure was created. Ownership chaining is key here. In SQL Server, it allows a procedure to access tables without direct permissions as long as everything shares the same owner/schema. In Azure SQL, this can break if there’s any mismatch or if you’re using contained database users with differing authentication contexts. Using WITH EXECUTE AS might also need explicit declaration to avoid permission errors. A practical way to troubleshoot is to test execution under different contexts — similar to checking the performance of a car under different conditions. The engine might be the same, but handling, load, and environment all impact results. Just like when doing an Autoexport, you want to make sure every detail is properly configured so the process goes smoothly and efficiently. Double-check procedure ownership, EXECUTE AS context, and whether the AD user has implicit rights via role membership — that usually resolves these SELECT issues. / comments
I've seen the same kind of issue when moving procedures between environments. In Azure SQL Database, especially with MS Entra ID (formerly Azure AD) authentication, permission checks can behave dif...
Edited 0 votes
I've run into a similar issue before when switching environments. In Azure SQL Database, especially when using MS Entra ID (formerly Azure AD) for auth, permission checks can behave slightly differently compared to on-prem SQL Server. Even if a stored procedure exists and runs fine on SQL Server with no explicit SELECT permissions on underlying tables, Azure SQL can enforce stricter permission boundaries depending on how the procedure is created. The key factor is ownership chaining. In SQL Server, ownership chaining allows the proc to access tables without requiring direct SELECT permissions as long as everything is owned by the same schema/owner. In Azure SQL, this often breaks if there's any mismatch or if you're running under contained database users with different authentication contexts. Also, WITH EXECUTE AS might behave differently or need to be explicitly declared to bypass such errors. One way we diagnosed a similar issue was by running a kind of "speed test" on procedure execution across different environments — not unlike how we monitor differences in german train speed between regional rail networks. The underlying engine is the same, but conditions (permissions, latency, resource governance) impact behavior in subtle ways. You might want to double-check procedure ownership, the EXECUTE AS context, and whether the AD user has implicit rights via role membership in Azure. That should clear up the SELECT issue. Hope that helps. / comments
I've run into a similar issue before when switching environments. In Azure SQL Database, especially when using MS Entra ID (formerly Azure AD) for auth, permission checks can behave slightly differ...
0 votes