Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os Drivers da Microsoft para PHP para SQL Server oferecem suporte à Autenticação do SQL Server quando você se conecta ao SQL Server.
A Autenticação do SQL Server deve ser usada somente quando a Autenticação do Windows não for possível. Para obter informações sobre como se conectar com a Autenticação do Windows, consulte Como conectar-se usando a Autenticação do Windows.
Os seguintes pontos devem ser considerados quando você usa a Autenticação do SQL Server para se conectar ao SQL Server:
A Autenticação de Modo Misto do SQL Server deve ser habilitada no servidor.
O ID de usuário e a senha (atributos de conexão UID e PWD no driver SQLSRV) devem ser definidos quando você tenta estabelecer uma conexão. O ID de utilizador e a palavra-passe devem corresponder a um utilizador e uma palavra-passe válidos do SQL Server.
Observação
As senhas que contêm uma chave de fechamento (}) devem ser escapadas com uma segunda chave de fechamento. Por exemplo, se a senha do SQL Server for "pass}word", o valor do atributo de conexão PWD deverá ser definido como "pass}}word".
As seguintes precauções devem ser tomadas quando você usa a Autenticação do SQL Server para se conectar ao SQL Server:
- Proteja (criptografe) as credenciais passadas pela rede do servidor Web para o banco de dados. As credenciais são criptografadas por padrão a partir do SQL Server 2005. Para maior segurança, defina o atributo de conexão Encrypt como "on" para criptografar todos os dados enviados ao servidor.
Observação
Definir o atributo de conexão Encrypt como "on" pode causar um desempenho mais lento porque a criptografia de dados pode ser computacionalmente intensiva.
Não inclua valores para os atributos de conexão UID e PWD em texto simples em scripts PHP. Esses valores devem ser armazenados em um diretório específico do aplicativo com as permissões restritas apropriadas.
Evite o uso da conta sa . Mapeie o aplicativo para um usuário de banco de dados que tenha os privilégios desejados e use uma senha forte.
Observação
Atributos de conexão, além de ID de usuário e senha, podem ser definidos quando você estabelece uma conexão. Para obter uma lista completa dos atributos de conexão suportados, consulte Opções de conexão.
Exemplo de SQLSRV
O exemplo a seguir usa o driver SQLSRV com Autenticação do SQL Server para se conectar a uma instância local do SQL Server. Os valores para os atributos de conexão UID e PWD necessários são obtidos de arquivos de texto específicos do aplicativo, uid.txt e pwd.txt, no diretório C:\AppData . Depois que a conexão for estabelecida, o servidor será consultado para verificar o login do usuário.
O exemplo pressupõe que o SQL Server e o banco de dados AdventureWorks estejam instalados no computador local. Toda a saída é gravada no navegador quando o exemplo é executado a partir do navegador.
<?php
/* Specify the server and connection string attributes. */
$serverName = "(local)";
/* Get UID and PWD from application-specific files. */
$uid = file_get_contents("C:\AppData\uid.txt");
$pwd = file_get_contents("C:\AppData\pwd.txt");
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>"AdventureWorks");
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Unable to connect.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Query SQL Server for the login of the user accessing the
database. */
$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
echo "Error in executing query.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Retrieve and display the results of the query. */
$row = sqlsrv_fetch_array($stmt);
echo "User login: ".$row[0]."</br>";
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
PDO_SQLSRV exemplo
Este exemplo usa o driver PDO_SQLSRV para demonstrar como se conectar com a Autenticação do SQL Server.
<?php
$serverName = "(local)";
$database = "AdventureWorks";
// Get UID and PWD from application-specific files.
$uid = file_get_contents("C:\AppData\uid.txt");
$pwd = file_get_contents("C:\AppData\pwd.txt");
try {
$conn = new PDO( "sqlsrv:server=$serverName;Database = $database", $uid, $pwd);
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch( PDOException $e ) {
die( "Error connecting to SQL Server" );
}
echo "Connected to SQL Server\n";
$query = 'select * from Person.ContactType';
$stmt = $conn->query( $query );
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){
print_r( $row );
}
// Free statement and connection resources.
$stmt = null;
$conn = null;
?>
Ver também
Como conectar-se usando a autenticação do SQL Server
Guia de programação para os drivers da Microsoft para PHP para SQL Server
Sobre Exemplos de Código na Documentação
Como criar um logon do SQL Server
Como: Criar um usuário de banco de dados