Какова наиболее вероятная причина такого поведения в SQL Server 2005?
ТЕСТ №1:
Я запускаю Management Studio Express, подключаюсь к своей локальной базе данных с помощью «проверки подлинности Windows» и вижу, что у меня есть 1 база данных и 1 таблица с именем dbo.MyTable.
Запуск "SELECT * FROM MyTable" (и dbo.MyTable) показывает, что он ДЕЙСТВИТЕЛЬНО существует, но пуст.
ТЕСТ №2:
Я повторно запускаю Management Studio Express, подключаюсь к своей базе данных 1 с помощью «аутентификации sql» myLogin / myPassword и вижу, что у меня есть dbo.MyTable.
Запуск «SELECT * FROM MyTable» (и dbo.MyTable) дает:
Msg 229, Level 14, State 5, Line 2
The SELECT permission was denied on the object 'MyTable', database 'master', schema 'dbo'.
ТЕСТ №3:
Выполнение некоторого общего кода vb.net с использованием моей SQL-аутентификации myLogin / myPassword показывает, что я могу читать / писать в MyTable без проблем .... и таблица содержит сотни хороших записей.
Неужели у меня здесь 2-3 разных стола? (Мне нужно только 1.) Я действительно НИКОГДА необходимо иметь «несколько таблиц с одинаковыми именами, но у меня разные владельцы».
Что тут происходит?
В сообщенной вами ошибке указано, что ваше соединение Management Studio Express с использованием аутентификации SQL пытается запросить MyTable в master
база данных. Я очень сомневаюсь, что это та база данных, которую вы хотите использовать.
В Management Studio убедитесь, что вы выбираете свою базу данных. Вы можете использовать раскрывающееся меню на панели инструментов или, если ваша база данных называется MyDatabase, вы можете выполнить команду USE, а затем ваш SELECT.
USE MyDatabase
SELECT * FROM MyTable
В строке подключения вашего приложения VB.NET, вероятно, уже есть эта настройка. Это будет database
атрибут или initial catalog
атрибут, а значение будет MyDatabase.