다음을 통해 공유


방법: Windows 인증을 사용하여 연결

기본적으로 SQL Server Driver for PHP는 Windows 인증을 사용하여 SQL Server 서버에 연결합니다. 이는 대부분의 시나리오에서 최종 사용자의 ID가 아닌 웹 서버의 프로세스 ID나 스레드 ID(웹 서버가 가장을 사용 중인 경우)를 사용하여 서버에 연결한다는 의미합니다.

Windows 인증을 사용하여 SQL Server에 연결하는 경우 다음 사항을 고려해야 합니다.

  • 연결을 설정하려면 웹 서버의 프로세스 또는 스레드가 실행 중인 자격 증명이 유효한 SQL Server 로그인에 매핑되어야 합니다.
  • SQL Server와 웹 서버가 다른 컴퓨터에 있는 경우 원격 연결을 사용하도록 SQL Server를 구성해야 합니다.

참고

연결을 설정할 때 DatabaseConnectionPooling과 같은 연결 특성을 설정할 수 있습니다. 지원되는 연결 특성의 전체 목록은 sqlsrv_connect를 참조하십시오.

가능하면 Windows 인증을 사용하여 SQL Server에 연결해야 하는 이유는 다음과 같습니다.

  • 인증하는 동안 네트워크를 통해 자격 증명이 전달되지 않으므로 사용자 이름과 암호가 데이터베이스 연결 문자열에 포함되지 않습니다. 이는 악의적인 사용자나 공격자가 네트워크를 모니터링하거나 구성 파일 내의 연결 문자열을 확인하는 방법으로 자격 증명을 얻을 수 없음을 의미합니다.
  • 사용자가 중앙 계정 관리의 영향을 받으므로 암호 만료 기간, 최소 암호 길이 및 잘못된 로그인 요청이 여러 번 있을 경우 계정 잠금과 같은 보안 정책이 적용됩니다.

Windows 인증이 효과적인 방법이 아닌 경우 방법: SQL Server 인증을 사용한 연결을 참조하십시오.

다음 예제에서는 Windows 인증을 사용하여 SQL Server의 로컬 인스턴스에 연결합니다. 연결이 설정된 후 서버에서 데이터베이스에 액세스하려는 사용자의 로그인을 쿼리합니다.

이 예제에서는 SQL Server와 AdventureWorks 데이터베이스가 로컬 컴퓨터에 설치되어 있다고 가정합니다. 브라우저에서 이 예제를 실행하면 모든 출력이 브라우저에 기록됩니다.

<?php
/* Specify the server and connection string attributes. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");

/* Connect using Windows 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);
?>

참고 항목

태스크

방법: SQL Server 인증을 사용한 연결

개념

설명서에 포함된 코드 예제 정보

관련 자료

프로그래밍 가이드
방법: SQL Server 로그인 만들기
방법: 데이터베이스 사용자 만들기
사용자, 역할 및 로그인 관리
사용자와 스키마 분리
Grant 개체 권한(Transact-SQL)