데이터베이스 설계하기

첫번째 단계는 항상 데이터베이스를 생성하는 것입니다. 써드 파티의 데이터베이스를 사용할 수도 있습니다. 데이터베이스를 생성할 때, 데이터베이스는 생성 구문을 실행한 오너에게 할당됩니다. 보통, 오너(또는 슈퍼유저)만 그 데이터베이스의 객체를 다룰 수 있습니다. 다른 사용자가 사용할 수 있게 하려면, 권한을 주어야 합니다.

어플리케이션은 데이터베이스에 오너나 슈퍼유저로 접속해서는 안됩니다. 이러한 사용자는 스키마를 변경하거나(예. 테이블 드롭) 전체 내용을 지울 수 있기 때문입니다.

어플리케이션이 데이터베이스 객체에 필요한 최소한의 권한만 가지도록, 다른 데이터베이스 사용자를 만듭니다. 최소한도로 필요한 권한만 주고, 동일한 사용자가 다른 사용을 하지 못하도록 합니다. 이로써 침입자가 어플리케이션 권한으로 데이터베이스 사용 권한을 습득해도, 어플리케이션이 할 수 있는 변경밖에 하지 못하도록 합니다.

모든 비지니스 로직을 웹 어플리케이션(즉, 스크립트)에 넣지 않기를 권합니다. 대신, 뷰, 트리거, 룰을 사용한 데이터베이스 스키마를 사용하십시오. 시스템이 발전하면, 새 클라이언트가 데이터베이스를 여는 경향이 있고, 각 데이터베이스 클라이언트에 로직을 다시 구현해야 합니다. 반복하는 대신에, 트리거로 자동적으로 투명하게 필드를 다룰 수 있습니다. 이는 종종 어플리케이션의 디버그 문제를 해결하기 쉽게 하거나 트랜젝션을 추적하기 쉽게 합니다.

add a note add a note

User Contributed Notes 1 note

up
-8
krystian at jablonowski dot eu
3 years ago
It's a good practice to create a user account with absolutely minimal permissions. Whenever You need to select those permissions by columns or tables remember that some rules don't apply to security measures on Your server, like "We are all adults here" or "KISS - Keep It Simple Stupid". Personally, I prefer to create a minimal amount of users with only the necessary authorization to manipulate or collect data from DB.
Remember, that leak of data can have tremendous consequences, and rebuilding the trust of Your users is extremely hard to accomplish.
To Top