Я пытаюсь подключиться к базе данных SQL Server 2017 в Google Cloud SQL через Google Apps Script, используя Jdb c .getCloudSqlConnection. Я могу успешно подключиться к базе данных с помощью SQL Server Management Studio.
- Подключение к этому экземпляру настроено для Publi c IP без необходимости SSL
- У меня есть IP-адреса в белом списке как указано в этой статье
- Соответствующий код подключения из функции скрипта Apps приведен ниже
7 var connectionName = '<instance connection name>';
8 var user = '<user>';
9 var userPwd = '<password>';
10 var db = '<database name>';
11
12 function readFromTable_getCloudSqlConnection() {
13
14 var dbUrl = 'jdbc:google:mysql://' + connectionName + '/' + db;
15 var conn = Jdbc.getCloudSqlConnection(dbUrl, user, userPwd);
16
17 var start = new Date();
18 var stmt = conn.createStatement();
19 stmt.setMaxRows(1000);
20 var results = stmt.executeQuery('SELECT * FROM peeps');
Ошибка в журналах скрипта приложения:
Исключение: не удалось установить sh соединение с базой данных. Проверьте строку подключения, имя пользователя и пароль. at readFromTable_getCloudSqlConnection (код: 15: 19)
Ошибка в SQL Журналах сервера из Google Cloud SQL logs
Ошибка : 18456, уровень серьезности: 14, состояние: 148.
и
Ошибка входа пользователя 'a-280598101372- \ a-280598101372- $». Причина: проверка доступа к серверу на основе токенов завершилась ошибкой инфраструктуры. У входа нет разрешения на подключение к конечной точке. [КЛИЕНТ: 127.0.0.1] "
Кажется, это проблема с правами доступа к базе данных SQL Server. Я попытался найти это SQL сообщение об ошибке сервера и большинство сообщений ссылка, предоставляющая надлежащие разрешения пользователям и / или ролям, которые, как я полагаю, пользователи, созданные с помощью Cloud SQL, не имеют или могут изменить.