[php] 데이터베이스 연동과 관련된 접근 제어 및 권한 부여 방법

데이터베이스는 웹 애플리케이션에서 중요한 부분을 차지합니다. 따라서 데이터베이스 접근을 보호하고 안전하게 유지하기 위해 적절한 접근 제어와 권한 부여가 필요합니다.

1. 데이터베이스 연결

PHP에서 MySQL 데이터베이스에 연결하려면 mysqli 또는 PDO와 같은 확장을 사용합니다.

$conn = new mysqli($servername, $username, $password, $dbname);

// PDO를 사용하는 경우
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

2. 접근 제어

데이터베이스 접근을 제어하기 위해 사용자 인증 및 권한 부여가 필요합니다.

사용자 인증

사용자 인증은 데이터베이스에 접속하려는 사용자의 신원을 확인하는 과정입니다. 사용자 이름과 비밀번호는 안전하게 보호되어야 합니다.

$username = 'username';
$password = 'password';

권한 부여

데이터베이스 사용자에 대해 최소 권한 원칙을 따라야 합니다. 필요한 최소한의 권한만을 부여하여 데이터베이스를 안전하게 보호해야 합니다.

GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO 'username'@'localhost';

3. 코드 예시

아래는 사용자 인증 및 데이터베이스 연결에 관한 예시 코드입니다.

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {
    echo "Connected successfully";
}

안전한 데이터베이스 접근을 위해 접속 정보를 환경 변수로 저장하고, mysqli_real_escape_string 또는 Prepared Statements를 사용하여 SQL Injection을 방지해야 합니다.

이상적으로는 데이터베이스와의 연결은 안전하고 적절한 권한이 부여된 사용자만 접근할 수 있도록 보호되어야 합니다.

참고 자료