Управление проверкой подлинности в компонент Database Engine PowerShell

По умолчанию компоненты SQL Server PowerShell используют при установлении соединения с компонентом Компонент Database Engine проверку подлинности Windows. Для использования проверки подлинности SQL Server необходимо либо определить виртуальный диск PowerShell, либо указать параметры –Username и –Password для Invoke-Sqlcmd.

  1. Перед началом работы выполните следующие действия. Разрешения

  2. Настройка проверки подлинности с помощью: Виртуального диска, Invoke-Sqlcmd

Разрешения

Все действия, которые могут быть выполнены на экземпляре компонента Компонент Database Engine, определяются разрешениями, предоставляемыми учетным данным, которые использовались при подключении к экземпляру. По умолчанию для подключения к компоненту Компонент Database Engine с проверкой подлинности Windows поставщик SQL Server и командлеты используют учетную запись Windows, под которой они работают.

Для подключения с проверкой подлинности SQL Server необходимо указать идентификатор имени входа и пароль проверки подлинности SQL Server. При использовании поставщика SQL Server необходимо связать учетные данные для входа на SQL Server с виртуальным диском, а затем с помощью команды перехода в каталог (cd) подключиться к этому диску. В Windows PowerShell учетные данные безопасности можно связывать только с виртуальными дисками.

[В начало]

Проверка подлинности SQL Server с помощью виртуального диска

Создание виртуального диска с именем входа для проверки подлинности SQL Server

  1. Создайте функцию, которая:

    1. Имеет параметры для имени, назначаемого виртуальному диску, идентификатора имени входа и пути поставщика, который будет связан с виртуальным диском.

    2. Использует read-host для запроса ввода пароля.

    3. Использует new-object для создания объекта учетных данных.

    4. Использует new-psdrive для создания виртуального диска с указанными учетными данными.

  2. Вызовите функцию, чтобы создать виртуальный диск с указанными учетными данными.

[В начало]

Пример (виртуальный диск)

В этом примере показано создание функции 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

[В начало]

Проверка подлинности SQL Server с использованием Invoke-Sqlcmd

Использование Invoke-Sqlcmd для проверки подлинности SQL Server

  1. Укажите идентификатор имени входа с помощью параметра –Username, а связанный с ним пароль — с помощью параметра –Password.

Пример (Invoke-Sqlcmd)

В этом примере командлет read-host используется для запроса ввода пароля с последующим подключением с проверкой подлинности 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, командлет