Compartilhar via


Gerenciar a autenticação no Mecanismo de Banco de Dados com o PowerShell

Por padrão, os componentes do SQL Server PowerShell usam a Autenticação do Windows ao 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.

  1. Antes de começar: Permissões

  2. 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, associe as credenciais de logon do SQL Server a uma unidade virtual e use o comando de alterar diretório (cd) para conectar-se a essa unidade. No Windows PowerShell, credenciais de segurança só podem ser associadas a unidades virtuais.

[Início]

Autenticação do SQL Server usando uma unidade virtual

Para criar uma unidade virtual associada com um logon de Autenticação do SQL Server

  1. Crie uma função que:

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

    2. Usa read-host para solicitar a senha do usuário.

    3. Usa new-object para criar um objeto de credenciais.

    4. Usa new-psdrive para criar uma unidade virtual com as credenciais fornecidas.

  2. Chame a função para criar uma unidade virtual com as credenciais fornecidas.

[Início]

Exemplo (Unidade Virtual)

Este 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. Então, sempre que você usa o comando de diretório de alteração (cd) para conectar a um caminho usando o nome de unidade virtual, todas as operações são executadas usando as credenciais de logon de 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

[Início]

Autenticação de SQL Server usando Invoke-Sqlcmd

Para usar Invoke-Sqlcmd com a Autenticação do SQL Server

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

[Início]

Consulte também

Conceitos

SQL Server PowerShell

Provedor do SQL Server PowerShell

cmdlet Invoke-Sqlcmd