Bagikan melalui


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.

  1. Sebelum Memulai: Izin

  2. 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

  1. Buat fungsi yang:

    1. Memiliki parameter untuk nama untuk memberikan drive virtual, ID masuk, dan jalur penyedia untuk dikaitkan dengan drive virtual.

    2. read-host Menggunakan untuk meminta kata sandi kepada pengguna.

    3. new-object Menggunakan untuk membuat objek kredensial.

    4. new-psdrive Menggunakan untuk membuat drive virtual dengan kredensial yang disediakan.

  2. 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

  1. -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