Google Apps Script を使用して Microsoft SQL Server に接続しようとしています。私はSQL Server 2008 R2を使用しており、データを読み取ってスプレッドシートに入れることになっている推奨スクリプトの1つを使用しています: https://developers.google.com/apps-script/jdbc#reading_from_a_database
エラーメッセージは次のとおりです。
データベース接続の確立に失敗しました。接続文字列、ユーザー名、およびパスワードを確認してください
ユーザー名とパスワードは問題ありません。ユーザーは DBowner です。ポートも正しいです。次を使用して Telnet 経由でサーバーに接続しようとしました: o IP アドレス 1433 で動作します。
コードは次のとおりです。
function foo() {
var conn = Jdbc.getConnection("jdbc:sqlserver://IP-adress:1433/DBName","user","password");
var stmt = conn.createStatement();
stmt.setMaxRows(100);
var start = new Date();
var rs = stmt.executeQuery("select * from person");
var doc = SpreadsheetApp.getActiveSpreadsheet();
var cell = doc.getRange('a1');
var row = 0;
while (rs.next()) {
for (var col = 0; col < rs.getMetaData().getColumnCount(); col++) {
cell.offset(row, col).setValue(rs.getString(col + 1));
}
row++;
}
rs.close();
stmt.close();
conn.close();
var end = new Date();
Logger.log("time took: " + (end.getTime() - start.getTime()));
}
何が間違っている可能性があるか考えていますか?サーバーで何らかの構成を行う必要がありますか? それともデータベースに?上記の手順では、Google の IP アドレスがデータベースに確実に到達できるようにします。しかし、Google のすべての IP アドレスを一覧表示する代わりに、そのポートですべてのアクセスを許可しました。また、SQL Server 構成マネージャーで TCP/IP プロトコルを有効にしました。そして、MSSMS でサーバーに「リモート接続」を許可しました。他にアイデアはありますか?