管理資料庫引擎 PowerShell 中的驗證
依預設,連線至資料庫引擎的執行個體時,SQL Server PowerShell 元件會使用 Windows 驗證。 您可以藉由定義 PowerShell 虛擬磁碟驅動器,或指定 的 -Username
和 -Password
參數 Invoke-Sqlcmd
,來使用 SQL Server 驗證。
開始之前:權限
若要設定驗證,請使用: A 虛擬磁碟驅動器、 Invoke-Sqlcmd
權限
您在資料庫引擎的執行個體中可執行的所有動作,都是透過授與驗證認證的權限所控制,而這些驗證認證用來連線至執行個體。 依預設,SQL Server 提供者和 Cmdlet 會使用其執行時所依據的 Windows 帳戶,來建立資料庫引擎的 Windows 驗證連線。
若要進行 SQL Server 驗證連線,您必須提供 SQL Server 驗證登入識別碼和密碼。 使用 SQL Server 提供者時,您必須將 SQL Server 登入認證與虛擬磁碟驅動器產生關聯,然後使用變更目錄命令 (cd
) 連線到該磁碟驅動器。 在 Windows PowerShell 中,安全性認證只能與虛擬磁碟機產生關聯。
使用虛擬磁碟機的 SQL Server 驗證
建立與 SQL Server 驗證登入相關聯的虛擬磁碟驅動器
建立的函數:
具有參數可表示提供給虛擬磁碟機的名稱、登入識別碼,以及與虛擬磁碟機相關聯的提供者路徑。
使用
read-host
來提示使用者輸入密碼。用來
new-object
建立認證物件。使用
new-psdrive
建立具有所提供認證的虛擬磁碟驅動器。
呼叫此函數,以建立具有已提供認證的虛擬磁碟機。
範例 (虛擬磁碟機)
此範例會建立名為 sqldrive 的函數,可讓您用來建立與所指定 SQL Server 驗證登入和執行個體相關聯的虛擬磁碟機。
sqldrive 函數會提示您輸入登入的密碼,並且在您輸入時遮罩密碼。 然後,每當您使用變更目錄命令 (cd
) 以使用虛擬磁碟驅動器名稱連線到路徑時,所有作業都會使用您在建立磁碟驅動器時提供的 SQL Server 驗證登入認證來執行。
## Create a function that specifies the login and prompts for the password.
function sqldrive
{
param( [string]$name, [string]$login = "MyLogin", [string]$root = "SQLSERVER:\SQL\MyComputer\MyInstance" )
$pwd = Read-Host -AsSecureString -Prompt "Password"
$cred = New-Object System.Management.Automation.PSCredential -argumentlist $login, $pwd
New-PSDrive $name -PSProvider SqlServer -Root $root -Credential $cred -Scope 1
}
## Use the sqldrive function to create a SQLAuth virtual drive.
sqldrive SQLAuth
## CD to the virtual drive, which invokes the supplied authentication credentials.
cd SQLAuth
使用 Invoke-Sqlcmd 的 SQL Server 驗證
若要搭配 SQL Server 驗證使用 Invoke-Sqlcmd
-Username
使用 參數來指定登入標識碼,並使用-Password
參數來指定相關聯的密碼。
範例 (Invoke-Sqlcmd)
此範例使用 read-host Cmdlet 提示使用者輸入密碼,然後使用 SQL Server 驗證進行連接。
## Prompt the user for their password.
$pwd = Read-Host -AsSecureString -Prompt "Password"
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance" -Username "MyLogin" -Password $pwd
另請參閱
SQL Server PowerShell
SQL Server PowerShell 提供者
Invoke-Sqlcmd Cmdlet