Мне нужно выполнить запрос к локальному экземпляру SQL Server 2016 из нашей учетной записи автоматизации Azure с целью отправки сообщений электронной почты на основе содержимого в базе данных.
Клиент не может установитьсеанс, это проблема сети.Я думаю, что мне не хватает среднего шага или я не дал достаточно информации модулю SQL Server для нашего локального сервера.
- Я использую модуль
sqlserver
- Iпроверил, включены ли настройки TCP / IP для локального экземпляра
- Я включил браузер SQL Server (я не думаю, что это требуется)
- Я протестировал код на своем локальном ISS Powershellи это сработало
- Я пытался использовать аутентификацию Windows и SQL Server
Код:
Import-Module sqlserver
$from = "x.y@dom.com"
$to = "email@gmail.com"
$SMTPServer = "smtp.sendgrid.net"
$SMTPPort = "587"
$username = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$password = "xxxxxxxxxxx"
$subject = "Email test from Azure SMTP server"
$body = "Test email body, no content to see here!"
#$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
#$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
#$smtp.Send($From, $To, $subject, $body)
function Get-EmailBody{
}
<#
Get all emails which have been merged into the emailChangeHistory table with the flag emailSent = 0.
#>
function Get-ChangeHistory($sqlServer, $database, $emailSent = 0){
Invoke-Sqlcmd -Query "select 1" -ServerInstance "servername"
}
Get-ChangeHistory -sqlServer $null, -database $null, -emailSent $null
Я получаю эту ошибку:
Invoke-Sqlcmd: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром.
Сервер не найден или недоступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)
В строке: 30 символов: 5
+ Invoke-Sqlcmd -Query "выберите 1" -ServerInstance "имя_сервера"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (:) [Invoke-Sqlcmd], SqlException
+ FullyQualifiedErrorId: SqlExceptionError, Microsoft.SqlServer.Management.PowerShell.GetScriptCommand