2016-07-04 1 views
0

Каков правильный синтаксис для подключения к базе данных SQL Server с использованием проверки подлинности Windows.Скрипт Powershell для подключения к sql db с проверкой подлинности Windows

+0

Ответ на эту ссылку: [SO Link] (http://stackoverflow.com/a/18872802/2628302) – objectNotFound

+0

Спасибо, это сработало :) – Abhaya

ответ

0

Статья Technet по адресу https://technet.microsoft.com/en-us/magazine/hh855069.aspx дает отличный опыт подключения к базе данных SQL Server с использованием PowerShell. Она также включает в себя пример функции можно использовать в сценариях:

function Get-DatabaseData { 
    [CmdletBinding()] 
    param (
     [string]$connectionString, 
     [string]$query, 
     [switch]$isSQLServer 
    ) 
    if ($isSQLServer) { 
     Write-Verbose 'in SQL Server mode' 
     $connection = New-Object-TypeName System.Data.SqlClient.SqlConnection 
    } else { 
     Write-Verbose 'in OleDB mode' 
     $connection = New-Object-TypeName System.Data.OleDb.OleDbConnection 
    } 
    $connection.ConnectionString = $connectionString 
    $command = $connection.CreateCommand() 
    $command.CommandText = $query 
    if ($isSQLServer) { 
     $adapter = New-Object-TypeName System.Data.SqlClient.SqlDataAdapter $command 
    } else { 
     $adapter = New-Object-TypeName System.Data.OleDb.OleDbDataAdapter $command 
    } 
    $dataset = New-Object-TypeName System.Data.DataSet 
    $adapter.Fill($dataset) 
    $dataset.Tables[0] 
} 
function Invoke-DatabaseQuery { 
    [CmdletBinding()] 
    param (
     [string]$connectionString, 
     [string]$query, 
     [switch]$isSQLServer 
    ) 
    if ($isSQLServer) { 
     Write-Verbose 'in SQL Server mode' 
     $connection = New-Object-TypeName System.Data.SqlClient.SqlConnection 
    } else { 
     Write-Verbose 'in OleDB mode' 
     $connection = New-Object-TypeName System.Data.OleDb.OleDbConnection 
    } 
    $connection.ConnectionString = $connectionString 
    $command = $connection.CreateCommand() 
    $command.CommandText = $query 
    $connection.Open() 
    $command.ExecuteNonQuery() 
    $connection.close() 
} 

В приведенном выше сценарии из статьи Technet, вам просто нужно будет предоставить 3 параметра: строку подключения (которую вы будете использовать Trusted Connection = True для интегрированной безопасности), запрос на запуск и тип БД (SQL Server или OleDB).

0

Кроме того, вы также можете вернуться к функции Invoke-Sqlcmd2, которая автоматизирует все эти вещи для вас. Мы используем его с большим успехом, и это облегчает жизнь.

Смежные вопросы