sql >> Base de Datos >  >> RDS >> Sqlserver

Permiso para consultar dbo.sysobjects

Primero:debe usar sys.objects en lugar de dbo.sysobjects. dbo.sysobjects es una construcción de SQL 2000 que solo está en SQL 2008 por razones de compatibilidad con versiones anteriores. sys.objects contiene una fila para cada objeto de ámbito de esquema definido por el usuario que se crea dentro de una base de datos, por lo que no tendría que filtrar su consulta en absoluto. sys.all_objects es un superconjunto que contiene objetos del sistema y del usuario.

En segundo lugar, en el lado de los permisos, en SQL Server 2005 y versiones posteriores, la visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles que son propiedad de un usuario o sobre los que se le ha otorgado algún permiso. Por lo tanto, su usuario deberá recibir algún permiso sobre los elementos que está buscando. Otorgar VIEW DEFINITION al usuario en los esquemas en la base de datos permitiría que la consulta funcione, sin otorgar acceso a ningún dato.