Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Permissão para consultar dbo.sysobjects


Primeiro - você deve usar sys.objects em vez de dbo.sysobjects. dbo.sysobjects é uma construção do SQL 2000 que está apenas no SQL 2008 por motivos de compatibilidade com versões anteriores. sys.objects contém uma linha para cada objeto com escopo de esquema definido pelo usuário que é criado em um banco de dados, para que você não precise filtrar sua consulta. sys.all_objects é um superconjunto que contém objetos do sistema e do usuário.

Em segundo lugar - no lado da permissão - no SQL Server 2005 e versões posteriores, a visibilidade dos metadados nas exibições do catálogo é limitada aos protegíveis que um usuário possui ou aos quais o usuário recebeu alguma permissão. Portanto, seu usuário terá que receber alguma permissão sobre os itens que está procurando. Conceder VIEW DEFINITION ao usuário no(s) esquema(s) no banco de dados permitiria que a consulta funcionasse, sem conceder acesso a nenhum dado.