Comments
Sort by recent activity
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...