Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. Use a Autenticação do SQL Server definindo uma unidade virtual do PowerShell ou especificando os parâmetros -Username e -Password para Invoke-Sqlcmd.
Observação
Há dois módulos do SQL Server PowerShell; SqlServer e SQLPS.
O módulo SqlServer é o módulo atual do PowerShell a ser usado.
O módulo SQLPS está incluído na instalação do SQL Server (para compatibilidade com versões anteriores), mas não está mais sendo atualizado.
O módulo do SqlServer contém versões atualizadas dos cmdlets no SQLPS e inclui novos cmdlets para dar suporte aos recursos mais recentes do SQL.
Instale o módulo SqlServer da Galeria do PowerShell.
Para obter mais informações, visite o SQL Server PowerShell.
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, você deve fornecer 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 de diretório de alteração (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 a 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.
Use read-host para solicitar a senha ao usuário.
Use new-object para criar um objeto de credenciais.
Use 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
Este exemplo cria uma função chamada sqldrive que você pode usar para criar uma unidade virtual associada ao logon e à instância de Autenticação do SQL Server especificados.
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ê usa o comando de diretório de alteração (cd) para se conectar a um caminho usando o nome da unidade virtual, todas as operações são executadas usando as credenciais de logon da Autenticação do SQL Server fornecidas quando você criou 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
## Set-Location to the virtual drive invokes the supplied authentication credentials.
sl SQLAuth:
Autenticação do 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 de host de leitura para solicitar uma senha ao usuário e, em seguida, conecta-se 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