This error usually means the SQL connector connection object is missing one of the required SQL connection properties, not only that the service principal lacks permissions.
A few things I would check:
1. Make sure the SQL connector connection is created with all required values:
Server name: yourserver.database.windows.net
Database name: yourdatabasename
Authentication type: Service principal / Microsoft Entra application
Tenant ID: Tenant B ID
Client ID: App registration client ID
Client secret: valid secret
Do not use only the Azure SQL resource ID or partial server name.
2. Confirm where the app registration should live.
For cross-tenant access, the app registration can be multi-tenant, but the service principal must exist in the tenant that owns the SQL database, and SQL must be able to resolve that identity.
3. Confirm the database user exists in the actual target database, not only master.
Run in the target database:
SELECT name, type_desc
FROM sys.database_principals
WHERE name = 'App-Name';
Then confirm role membership:
SELECT
dp.name AS principal_name,
rp.name AS role_name
FROM sys.database_role_members drm
JOIN sys.database_principals dp ON drm.member_principal_id = dp.principal_id
JOIN sys.database_principals rp ON drm.role_principal_id = rp.principal_id
WHERE dp.name = 'App-Name';
4. If the connector fails while loading dynamic content, test with a simple manual SQL query action first, for example:
SELECT TOP 1 * FROM dbo.YourTable
This helps confirm whether the issue is authentication/connection or only metadata discovery.
5. Check that the SQL Server has a Microsoft Entra admin configured. Without that, Entra authentication to Azure SQL can behave unexpectedly.
6. If this is Azure SQL in Tenant B, also check whether Conditional Access, private endpoint, networking, or tenant restrictions are blocking the Power Platform connector backend.
In short, I would first recreate the SQL connection using the exact server FQDN, database name, Tenant B tenant ID, Client ID, and Client Secret. Then test with a simple query action before using Get rows or dynamic table metadata.
If it still fails after that, this may need Microsoft support because cross-tenant SQL connector + service principal authentication can fail at the connector connection layer before the query even reaches SQL.