데이터베이스 엔진 PowerShell에서 인증 관리Manage Authentication in Database Engine PowerShell

기본적으로 SQL ServerSQL Server PowerShell 구성 요소는 Windows 인증을 사용하여 데이터베이스 엔진Database Engine인스턴스에 연결합니다.By default, the SQL ServerSQL Server PowerShell components use Windows Authentication when connecting to an instance of the 데이터베이스 엔진Database Engine. PowerShell 가상 드라이브를 정의하거나 Invoke-Sqlcmd 에 대한 –Username–Password매개 변수를 지정하여 SQL Server 인증을 사용할 수 있습니다.You can use SQL Server Authentication by either defining a PowerShell virtual drive, or by specifying the –Username and –Password parameters for Invoke-Sqlcmd.

  1. 시작하기 전에: 사용 권한Before you begin: Permissions

  2. 인증을 설정하려면: 가상 드라이브, –PasswordTo set authentication, using: A Virtual Drive, Invoke-Sqlcmd

사용 권한 Permissions

데이터베이스 엔진Database Engine 의 인스턴스에서 수행할 수 있는 모든 동작은 인스턴스에 연결하는 데 사용되는 인증 자격 증명에 부여된 사용 권한에 의해 제어됩니다.All actions you can perform in an instance of the 데이터베이스 엔진Database Engine are controlled by the permissions granted to the authentication credentials used to connect to the instance. 기본적으로 SQL ServerSQL Server 공급자 및 cmdlet은 데이터베이스 엔진Database Engine에 대한 Windows 인증 연결을 만들기 위해 실행하는 Windows 계정을 사용합니다.By default, the SQL ServerSQL Server provider and cmdlets use the Windows account under which it is running to make a Windows Authentication connection to the 데이터베이스 엔진Database Engine.

SQL ServerSQL Server 인증 연결을 만들려면 SQL Server 인증 로그인 ID 및 암호를 제공해야 합니다.To make a SQL ServerSQL Server Authentication connection you must supply a SQL Server Authentication login ID and password. SQL ServerSQL Server 공급자를 사용하는 경우 SQL ServerSQL Server 로그인 자격 증명을 가상 드라이브에 연결한 다음 디렉터리 변경 명령(cd)을 사용하여 해당 드라이브에 연결해야 합니다.When using the SQL ServerSQL Server provider, you must associate the SQL ServerSQL Server login credentials with a virtual drive, and then use the change directory command (cd) to connect to that drive. Windows PowerShell에서는 보안 자격 증명만 가상 드라이브에 연결할 수 있습니다.In Windows PowerShell, security credentials can only be associated with virtual drives.

가상 드라이브를 통한 SQL Server 인증 SQL Server Authentication Using a Virtual Drive

SQL Server 인증 로그인과 연관된 가상 드라이브를 만들려면To create a virtual drive associated with a SQL Server Authentication login

  1. 다음 함수를 만듭니다.Create a function that:

    1. 가상 드라이브에 제공할 이름, 로그인 ID 및 가상 드라이브에 연결할 공급자 경로에 대한 매개 변수를 포함하는 함수Has parameters for the name to give the virtual drive, the login ID, and the provider path to associate with the virtual drive.

    2. read-host 를 사용하여 사용자에게 암호를 묻는 함수Uses read-host to prompt the user for the password.

    3. new-object 를 사용하여 자격 증명 개체를 만드는 함수Uses new-object to create a credentials object.

    4. new-psdrive 를 사용하여 제공된 자격 증명으로 가상 드라이브를 만드는 함수Uses new-psdrive to create a virtual drive with the supplied credentials.

  2. 함수를 호출하여 제공된 자격 증명으로 가상 드라이브를 만드는 함수Invoke the function to create a virtual drive with the supplied credentials.

예제(가상 드라이브)Example (Virtual Drive)

이 예에서는 지정된 인증 로그인 및 인스턴스에 연결된 가상 드라이브를 만드는 데 사용할 수 있는 sqldrive SQL ServerSQL Server 라는 함수를 만듭니다.This example creates a function named sqldrive that you can use to create a virtual drive that is associated with the specified SQL ServerSQL Server Authentication login and instance.

sqldrive 함수는 로그인에 대한 암호를 입력하라는 메시지를 표시하고 사용자가 입력하는 암호를 마스킹합니다.The sqldrive function prompts you to enter the password for your login, masking the password as you type it in. 이렇게 하면 가상 드라이브 이름을 사용하여 경로에 연결하기 위해 디렉터리 변경 명령(cd)을 사용할 때마다 드라이브를 만들었을 때 제공한 SQL ServerSQL Server 인증 로그인 자격 증명을 사용하여 모든 작업이 수행됩니다.Then, whenever you use the change directory command (cd) to connect to a path by using the virtual drive name, all operations are performed by using the SQL ServerSQL Server Authentication login credentials that you supplied when you created the 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  

Invoke-Sqlcmd를 통한 SQL Server 인증 SQL Server Authentication Using Invoke-Sqlcmd

Invoke-Sqlcmd를 사용하여 SQL Server를 인증하려면To use Invoke-Sqlcmd with SQL Server Authentication

  1. –Username 매개 변수를 사용하여 로그인 ID를 지정하고 –Password 매개 변수를 사용하여 연결된 암호를 지정합니다.Use the –Username parameter to specify a login ID, and the –Password parameter to specify the associated password.

예제(Invoke-Sqlcmd)Example (Invoke-Sqlcmd)

이 예에서는 read-host cmdlet을 사용하여 사용자에게 암호를 물은 다음 SQL Server 인증을 사용하여 연결합니다.This example uses the read-host cmdlet to prompt the user for a password, and then connects using SQL Server Authentication.

## 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  

참고 항목See Also

SQL Server PowerShell SQL Server PowerShell
SQL Server PowerShell 공급자 SQL Server PowerShell Provider
Invoke-Sqlcmd cmdletInvoke-Sqlcmd cmdlet