Это из-за функции «цепочки владения» в SQL Server. Это означает, что если один объект (в вашем случае синоним) вызывает другой объект (в вашем случае таблицу), он проверяет, совпадает ли владелец объектов. Если владелец обоих объектов один и тот же, то доступ к вызываемым объектам (то есть к вашей таблице) не проверяется.
Благодаря этой функции, например, пользователи могут иметь доступ к представлению, не имея доступа к базовым таблицам.
Обычно эта цепочка владения не включена по умолчанию для разных баз данных. Так что проверьте, относится ли это к вашему случаю. Он может быть предоставлен на уровне базы данных:
SELECT is_db_chaining_on, name FROM sys.databases;
Или он может быть предоставлен на уровне сервера для всех баз данных:
EXECUTE sp_configure 'show advanced', 1;
RECONFIGURE;
EXECUTE sp_configure 'cross db ownership chaining';