Gerenciar a autenticação no PowerShell do Mecanismo de Banco de Dados
Por padrão, os componentes do SQL Server PowerShell usam a Autenticação do Windows ao se conectar a uma instância do Mecanismo de Banco de Dados. Você pode usar a Autenticação do SQL Server, definindo uma unidade virtual do PowerShell ou especificando os parâmetros -Username
e -Password
para Invoke-Sqlcmd
.
Antes de começar: Permissões
Para definir a autenticação, usando: Uma unidade virtual, Invoke-Sqlcmd
Permissões
Todas as ações que você pode executar em uma instância do Mecanismo de Banco de Dados são controladas pelas permissões concedidas às credenciais de autenticação usadas na conexão à instância. Por padrão, o provedor do SQL Server e cmdlets usam a conta do Windows na qual ele está sendo executado para estabelecer uma conexão de Autenticação do Windows com o Mecanismo de Banco de Dados.
Para fazer uma conexão de Autenticação do SQL Server, forneça uma ID de logon e uma senha de Autenticação do SQL Server. Ao usar o provedor do SQL Server, você deve associar as credenciais de logon do SQL Server a uma unidade virtual e, em seguida, usar o comando change directory (cd
) para se conectar a essa unidade. No Windows PowerShell, credenciais de segurança só podem ser associadas a unidades virtuais.
Autenticação do SQL Server usando uma unidade virtual
Para criar uma unidade virtual associada com um logon de Autenticação do SQL Server
Crie uma função que:
Tenha parâmetros para o nome a ser atribuído à unidade virtual, a ID de logon e o caminho de provedor para associar com a unidade virtual.
Usa
read-host
para solicitar a senha do usuário.Usa
new-object
para criar um objeto de credenciais.Usa
new-psdrive
para criar uma unidade virtual com as credenciais fornecidas.
Chame a função para criar uma unidade virtual com as credenciais fornecidas.
Exemplo (Unidade Virtual)
Esse exemplo cria uma função denominada sqldrive que você pode usar para criar uma unidade virtual que é associada ao logon de Autenticação e à instância especificados do SQL Server.
A função sqldrive solicita que você insira a senha para seu logon, mascarando a senha à medida que a digita. Em seguida, sempre que você usar o comando change directory (cd
) para se conectar a um caminho usando o nome da unidade virtual, todas as operações serão executadas usando as credenciais de logon da Autenticação do SQL Server que você forneceu ao criar a unidade.
## 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
Autenticação de SQL Server usando Invoke-Sqlcmd
Para usar Invoke-Sqlcmd com a Autenticação do SQL Server
- Use o parâmetro
-Username
para especificar uma ID de logon e o parâmetro-Password
para especificar a senha associada.
Exemplo (Invoke-Sqlcmd)
Este exemplo usa o cmdlet do host de leitura para solicitar ao usuário uma senha e, depois, conecta usando a Autenticação do 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
Consulte Também
SQL Server PowerShell
Provedor do SQL Server PowerShell
cmdlet Invoke-Sqlcmd