まず、dbo.sysobjectsの代わりにsys.objectsを使用する必要があります。 dbo.sysobjectsは、下位互換性の理由からSQL2008にのみ存在するSQL2000構造です。 sys.objectsには、データベース内に作成されたユーザー定義のスキーマスコープのオブジェクトごとの行が含まれているため、クエリをフィルタリングする必要はまったくありません。 sys.all_objectsはスーパーセットであり、システムオブジェクトとユーザーオブジェクトの両方が含まれています。
2番目(アクセス許可側)のSQL Server 2005以降のバージョンでは、カタログビューでのメタデータの表示は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なものに制限されています。そのため、ユーザーには、探しているアイテムに対する何らかの権限を付与する必要があります。データベース内のスキーマのユーザーにVIEWDEFINITIONを付与すると、データへのアクセスを許可せずにクエリを機能させることができます。