Войдите в систему с помощью MS SQL Express:Успех!Вход в инструментарий миграции:потерпеть неудачу?

StackOverflow https://stackoverflow.com/questions/997165

Вопрос

(нет ответов на мой идентичный пост на форумах MySQL, поэтому я надеюсь, что здесь мне повезет больше)

Я пытаюсь перенести базу данных MS SQL для друга.У меня нет физического доступа к компьютеру, и у меня нет прав администратора - просто пользователь для чтения / записи.

Используя "SQL Server Management Express" в XP, я могу легко войти в систему, используя IP / user / password.Я могу просматривать таблицы, выполнять запросы.Легко.

Когда я запускаю инструментарий миграции, выбираю MS SQL и пытаюсь подключиться, я получаю следующую ошибку:

---- Подключение к исходной базе данных и извлечение названий схем.Инициализация Драйвера JDBC...Класс драйвера MS SQL Драйвер JDBC Открывает соединение...Подключение jdbc:jtds:sqlserver://MYSERVERIP:1433/MYDATABASE;user=MYUSERNAME;password=MYPASSWORD;charset=utf-8;domain= Не удалось восстановить список имен схем (ошибка:0).ReverseEngineeringMssql.getSchemata : Не удалось войти в систему для пользователя 'MYUSERNAME'.Подробные сведения:net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java: 365) net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781) net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224) net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:599) net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:331) net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50) net.sourceforge.jtds.jdbc.Driver.connect (Driver.java:178) java.sql.DriverManager.getConnection (неизвестный Источник) java.sql.DriverManager.getConnection (неизвестный Источник) com.mysql.grt.modules.ReverseEngineeringGeneric.Установить соединение (ReverseEngineeringGeneric.java:141) com.mysql.grt.modules.ReverseEngineeringMssql.getSchemata(ReverseEngineeringMssql.java:99) sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный Метод) sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный Источник) sun.reflect.Делегирование Methodaccessorimpl.invoke (неизвестный Источник) java.lang.reflect.Метод.invoke (неизвестный Источник) com.mysql.grt.Grt.callModuleFunction(Неизвестный Источник)


Есть какие-нибудь идеи?Я трижды проверил данные для входа, никаких сомнений.Мне не хватает водителя?Странная ли настройка сервера?Понятия не имею, куда идти дальше.

Заранее благодарю.

Обновить: Я скачал и запустил DbVisualizer (который также использует JDBC) и нормально подключился, используя ту же информацию SQL auth ... это говорит мне, что это не сервер, и там не происходит никаких причудливых MSFT.

Однако я до сих пор понятия не имею, что делать дальше...

Это было полезно?

Решение

Я вижу, есть блог с почти таким же описанием ошибки

http://house9.blogspot.com/2007/12/mysql-migration-toolkit.html

Кроме того, для запуска инструмента вам необходимы права доступа

основная ИНФОРМАЦИЯ_СХЕМА

Я бы предложил выполнить запрос (это должен сделать ваш администратор).

use [master]
GO
GRANT SELECT ON SCHEMA::[INFORMATION_SCHEMA] TO [MYUSERNAME]
GO
use [master]
GO
GRANT VIEW DEFINITION ON SCHEMA::[INFORMATION_SCHEMA] TO [MYUSERNAME]
GO

Наконец, если вы предоставили эти права, но у вас та же ошибка, попросите своего системного администратора запустить SQL Profiler, затем запустите ваш инструмент и посмотрите, какие запросы он пытается выполнить и какие исключения SQL или безопасности там возникают (если таковые имеются)

Другие советы

Проверьте, "прослушивает" ли ваш SQL server ip, протокол tcp и порт 1433.

Попробуйте выполнить

telnet server_ip_addres 1433

Если окно telnet будет закрыто - SQL сервер не прослушивает ip, порт или tcp.Если у вас есть доступ к "Управлению конфигурацией SQL Server" или к реестру сервера, вы можете визуально найти информацию (Управление конфигурацией - Протоколы, TCP / IP, IP-адреса, порт) и при необходимости скорректировать строку подключения.На всякий случай ссылка на документ драйвера jdbc, который вы используете.

Я думаю, что отсутствуют права на конкретную базу данных или таблицу SQL Server.Некоторое время назад у меня была такая же проблема с миграцией dts.

Пользователю требовались права на чтение таблиц MSDB или sysdtspackag.

Я думаю, что ваша проблема аналогична "Не удалось получить список имен схем", возможно, у вашего пользователя недостаточно прав в некоторых системных таблицах.

Содержит ли ваша строка подключения специальные (не буквенно-цифровые) символы в значениях параметров?Если это так, попробуйте закодировать их urlencoding (например, / => %2f) и / или заключить в фигурные скобки {}.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top