Mengelola Autentikasi di Mesin Database PowerShell
Secara default, komponen PowerShell SQL Server menggunakan Autentikasi Windows saat menyambungkan ke instans Mesin Database. Anda dapat menggunakan Autentikasi SQL Server dengan menentukan drive virtual PowerShell, atau dengan menentukan -Username
parameter dan -Password
untuk Invoke-Sqlcmd
.
Sebelum Memulai: Izin
Untuk mengatur autentikasi, menggunakan: A Virtual Drive, Invoke-Sqlcmd
Izin
Semua tindakan yang dapat Anda lakukan dalam instans Mesin Database dikontrol oleh izin yang diberikan ke kredensial autentikasi yang digunakan untuk menyambungkan ke instans. Secara default, penyedia dan cmdlet SQL Server menggunakan akun Windows di mana ia berjalan untuk membuat koneksi Autentikasi Windows ke Mesin Database.
Untuk membuat koneksi Autentikasi SQL Server, Anda harus menyediakan ID login dan kata sandi Autentikasi SQL Server. Saat menggunakan penyedia SQL Server, Anda harus mengaitkan info masuk masuk SQL Server dengan drive virtual, lalu menggunakan perintah ubah direktori (cd
) untuk menyambungkan ke drive tersebut. Di Windows PowerShell, kredensial keamanan hanya dapat dikaitkan dengan drive virtual.
Autentikasi SQL Server Menggunakan Virtual Drive
Untuk membuat drive virtual yang terkait dengan login Autentikasi SQL Server
Buat fungsi yang:
Memiliki parameter untuk nama untuk memberikan drive virtual, ID masuk, dan jalur penyedia untuk dikaitkan dengan drive virtual.
read-host
Menggunakan untuk meminta kata sandi kepada pengguna.new-object
Menggunakan untuk membuat objek kredensial.new-psdrive
Menggunakan untuk membuat drive virtual dengan kredensial yang disediakan.
Panggil fungsi untuk membuat drive virtual dengan kredensial yang disediakan.
Contoh (Virtual Drive)
Contoh ini membuat fungsi bernama sqldrive yang dapat Anda gunakan untuk membuat drive virtual yang terkait dengan login dan instans Autentikasi SQL Server yang ditentukan.
Fungsi sqldrive meminta Anda memasukkan kata sandi untuk masuk Anda, menutupi kata sandi saat Anda mengetikkannya. Kemudian, setiap kali Anda menggunakan perintah ubah direktori (cd
) untuk menyambungkan ke jalur dengan menggunakan nama drive virtual, semua operasi dilakukan dengan menggunakan info masuk Autentikasi SQL Server yang Anda berikan saat membuat drive.
## 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
Autentikasi SQL Server Menggunakan Invoke-Sqlcmd
Untuk menggunakan Invoke-Sqlcmd dengan Autentikasi SQL Server
-Username
Gunakan parameter untuk menentukan ID masuk, dan-Password
parameter untuk menentukan kata sandi terkait.
Contoh (Invoke-Sqlcmd)
Contoh ini menggunakan cmdlet read-host untuk meminta kata sandi kepada pengguna, lalu menyambungkan menggunakan Autentikasi 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
Lihat Juga
SQL Server PowerShell
Penyedia PowerShell SQL Server
Cmdlet Invoke-Sqlcmd