1

(MySQL フォーラムでの同じ投稿からの応答がないので、ここで幸運を祈ります)

友人のために MS SQL データベースを移行しようとしています。マシンへの物理的なアクセス権も、管理者アクセス権もありません。読み取り/書き込みユーザーだけです。

XP で「SQL Server Management Express」を使用すると、IP/ユーザー/パスワードを使用して簡単にログインできます。テーブルを参照したり、クエリを実行したりできます。簡単。

移行ツールキットを起動し、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) ネット。


何か案は?ログインの詳細を 3 回確認しました。サイコロはありません。ドライバーが不足していますか? サーバーの設定がおかしくないですか?ここからどこへ行くべきかわかりません。

前もって感謝します。

更新: dbVisualizer(JDBCも使用)をダウンロードして実行し、同じSQL認証情報を使用して正常に接続しました...これは、サーバーではなく、派手なMSFTが行われていないことを示しています。

とはいえ、今後どうするかはまだ未定ですが…

4

4 に答える 4

3

なるほど、ほぼ同じエラーの説明があるブログがあります

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

また、ツールを実行するには、アクセス権が必要です

マスターINFORMATION_SCHEMA

クエリを実行することをお勧めします(これは管理者が行う必要があります)

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またはセキュリティの例外(存在する場合)を確認します。

于 2009-06-23T09:39:01.433 に答える
0

接続文字列のパラメータ値に特殊な(英数字以外の)文字が含まれていますか?その場合は、それらをurlencoding(/ =>%2fなど)するか、中かっこで囲んでください{}

于 2009-06-23T09:35:08.463 に答える
0

SQL Server の特定のデータベースまたはテーブルに対する権限が不足していると思います。以前、dts の移行で同じ問題が発生しました。

ユーザーには、MSDB または sysdtspackag テーブルに対する読み取り権限が必要でした。

あなたの問題は「スキーマ名のリストを取得できませんでした」に似ていると思います。ユーザーが一部のシステムテーブルに対して十分な権限を持っていない可能性があります。

于 2009-06-22T12:58:02.757 に答える
0

SQL サーバーが IP、TCP プロトコル、およびポート 1433 を「リッスン」しているかどうかを確認します。

実行してみる

telnet server_ip_addres 1433

telnet ウィンドウが閉じられる場合、SQL サーバーは IP、ポート、または tcp をリッスンしません。「SQL Server 構成管理」またはサーバーのレジストリにアクセスできる場合は、情報 (構成管理 - プロトコル、TCP/IP、IP アドレス、ポート) を視覚的に確認し、必要に応じて接続文字列を修正できます。念のため、使用しているjdbcドライバーのドキュメントへのリンク。

于 2009-06-17T20:08:15.670 に答える