Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разрешение за запитване към dbo.sysobjects

Първо - трябва да използвате sys.objects вместо dbo.sysobjects. dbo.sysobjects е конструкция на SQL 2000, която е само в SQL 2008 поради причини за обратна съвместимост. sys.objects съдържа ред за всеки дефиниран от потребителя обект с обхват на схема, който е създаден в база данни, така че изобщо няма да се налага да филтрирате заявката си. sys.all_objects е надмножество, което съдържа системни и потребителски обекти.

Второ - от страна на разрешенията - в SQL Server 2005 и по-нови версии, видимостта на метаданните в каталожните изгледи е ограничена до защитени елементи, които потребителят притежава или за които потребителят е получил някакво разрешение. Така че вашият потребител ще трябва да получи известно разрешение за елементите, които търси. Предоставянето на VIEW DEFINITION на потребителя в схемата(ите) в базата данни ще позволи на заявката да работи, без да се предоставя достъп до никакви данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - Невалидни знаци в имената на параметрите

  2. Как мога да генерирам INSERT скрипт за съществуваща таблица на SQL Server, която включва всички съхранени редове?

  3. Не можете да получите резултата от съхранената процедура в променлива?

  4. Инструкция CASE в клаузата WHERE в SQL Server 2008

  5. Как да използвате SQL Server HierarchyID чрез лесни примери