Управление проверкой подлинности для SQL Server в PowerShell
Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)
По умолчанию компоненты SQL Server PowerShell при создании подключения к ядру СУБД используют проверку подлинности Windows. Для использования проверки подлинности SQL Server необходимо либо определить виртуальный диск PowerShell, либо указать параметры -Username и -Password для Invoke-Sqlcmd.
Примечание.
Существует два модуля SQL Server PowerShell — SqlServer и SQLPS.
Самым актуальным модулем PowerShell является модуль SqlServer.
Модуль SQLPS входит в состав установки SQL Server (для обеспечения обратной совместимости), но больше не обновляется.
Модуль SqlServer содержит обновленные версии командлетов в SQLPS и новые командлеты для поддержки последних функций SQL.
Установите модуль SqlServer из коллекции PowerShell.
Подробные сведения см. в статье SQL Server PowerShell.
Разрешения
Все действия, которые могут быть выполнены на экземпляре ядра СУБД, определяются разрешениями тех учетных данных, которые использовались для подключении к этому экземпляру. По умолчанию для подключения к ядру СУБД с проверкой подлинности Windows командлеты и поставщик SQL Server используют учетную запись 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 и экземпляром 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
## Set-Location to the virtual drive, which invokes the supplied authentication credentials.
sl SQLAuth:
Проверка подлинности SQL Server с использованием Invoke-Sqlcmd
Использование Invoke-Sqlcmd для проверки подлинности SQL Server
- Укажите идентификатор имени входа с помощью параметра -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
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по