Google Apps Script для Microsoft SQL Server уточнение белого списка определенных диапазонов IP в настройках базы данных - PullRequest
0 голосов
/ 22 мая 2019

Разъяснение инструкций Google по настройке Jdbc.getConnection для Microsoft SQL Server гласит: «Чтобы создать соединение с базой данных с помощью службы JDBC, вы должны внести в белый список определенные диапазоны IP-адресов в настройках базы данных , чтобы разрешитьApps Script для доступа к нему. "

Моя база данных находится на сервере, на котором также есть другие базы данных.Я просмотрел все параметры базы данных базы данных, которую я создал с помощью (SQL Server Management Studio), где я создал базу данных.Я спросил сотрудника базы данных, которому мне сказали, что «сервер разрешен для удаленных подключений», и я вижу в свойствах базы данных в разделе «Подключения» флажок «Разрешить удаленные подключения к этому серверу» - это, похоже, не имеет значения,Когда я запускаю свой код - он не выдает ошибку и не подключается - он сообщает мне, что моя строка подключения или логин / пароль неверны.Я просмотрел инструкции и гуглил, что в сообщении и количестве людей также упоминалось, что они видели то же сообщение, и они сказали, что им нужно добавить список IP-адресов белого списка в соответствии с инструкциями Google.

Это диапазоны адресов, которые вам понадобятся.в белый список:

64.18.0.0 - 64.18.15.255 64.233.160.0 - 64.233.191.255 66.102.0.0 - 66.102.15.255 66.249.80.0 - 66.249.95.255 72.14.192.0 - 72.14.255.255 74.125.0.0 - 74.125.255.255 173.194.0.0 - 173.194.255.255 207.126.144.0 - 207.126.159.255 209.85.128.0 - 209.85.255.255 216.239.32.0 - 216.239.63.255

Я видел каждое отдельное свойство в базе данных, в котором ничего не сказано "IP"или" адрес "это проблема с разрешениями или что-то, к чему можно получить доступ из меню, к которому у меня нет доступа?

Не могли бы вы поделиться со мной, где этот "белый список базы данных" должен быть введен для базы данных?

Когда я найду его, смогу ли я добавить в белый список (разрешить доступ) списокIP выше, не вызывая проблемы для каких-либо других баз данных на сервере?Я не уверен, если общий сервер будет отличаться от выделенного сервера.

Кроме того, я спросил, и сетевые люди говорят мне, что эти IP-адреса не блокируются, но инструкции Google, в частности, гласят настройки базы данных , поэтому я подозреваю, что Google ожидает что-то довольно специфическое, чтобы бытьНастройка.

Наконец, когда я удаленный рабочий стол на сервер базы данных, я не могу найти какое-либо меню "Администрирование" для поиска в этом.

Спасибо за поддержку со всеми"Новичок" вопросы.

Для справки это рабочий код в соответствии с решением ниже.

function myFunction() {

var address = 'IPaddress\\instance';
var user = 'UserName';
var userPwd = 'ItsASecret';
var queryDb = 'DatabaseName';
var dbUrl = 'jdbc:sqlserver://' + address + ':1433;databaseName=' + queryDb;

var conn = Jdbc.getConnection(dbUrl, user, userPwd);
var start = new Date();
var stmt = conn.createStatement();

stmt.setMaxRows(100);
var results = stmt.executeQuery("select * from dbo.tablename");

var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sheetTab = sheet.getSheetByName('Sheet1');
var cell = sheetTab.getRange('A1');
var numCols = results.getMetaData().getColumnCount();
var numRows = sheetTab.getLastRow();
var headers ;
var row =0;

for(var i = 1; i <= numCols; i++){
  headers = results.getMetaData().getColumnName(i);
    cell.offset(row, i-1).setValue(headers);
    }

while (results.next()) {
  var rowString = '';
  for (var col = 0; col < numCols; col++) {
    rowString += results.getString(col + 1) + '\t';
    cell.offset(row +1, col).setValue(results.getString(col +1 ));
  }
  row++
  Logger.log(rowString)
}

results.close();
stmt.close();
conn.close();
}

1 Ответ

1 голос
/ 30 мая 2019

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

var dbUrl = 'jdbc: sqlserver: //' + address + ': 1433; databaseName =' + queryDb;

Эта команда очень полезна для проверки этой детали:

Test-NetConnection -Порт 800 -Компьютерное имя 1xx.1xx.0.1 -Информационный уровень Подробнее

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...