2010-07-30 7 views
0

내 사이트를 만들고 페이지에 포럼 페이지가 mydb.forum_table, mydb_forum_table2에 대한 권한이있는 포럼 mysql 사용자를 사용하도록 설정했습니다. 프로필 페이지에서 mydb.users 및 mydb.profieldields에 액세스 할 수있는 프로필 사용자를 사용하려면 등등 포토 갤러리, 블로그, 채팅 및 이 올바른 방법입니다. 나는 최소한의 특권에 대한 원칙을 생각하고있다. 그러나 내가 왜 다른 유명한 CMS가 그렇게하지 않았는지 궁금하다.내 응용 프로그램의 각 우려에 대해 다른 사용자 만들기!

+0

여기에 질문이 있습니까? 그러나 나는 당신이보고있는 것이 역할을 만들고 그것들을 당신의 사용자들과 연관시키는 것이라고 생각한다. 최소한의 특권을 가진 당신의 원칙은 좋습니다. 당신은 당신의 어플리케이션에서 이것을 확실히 구현할 수 있습니다. – SoftwareGeek

+2

- 17 % 일 경우 답을 '수락'해야합니다. 오히려 일반적이고 공개적인 질문을 자주하면 Communinity Wiki를 사용하십시오. – pascal

+0

나는 당신에게 더하기 mr.100 %를 주었고 지금은 더 많은 평판을 얻을 수 있습니다! 나는 프로그래머의 전체 무결성이 그들의 스택 오버 플로우 평판을 뛰어 넘는다는 것을 몰랐다. –

답변

1

데이터베이스의 중요한 리소스 중 하나는 연결입니다. 일반적으로 데이터베이스는 최대 연결 수로 구성되며, 프로세스가 쿼리를 작성해야 할 때마다 연결이 필요합니다. 데이터베이스 연결은 값 비싼 객체로 시간과 메모리를 필요로하며 가장 중요한 것은 특정 사용자에 대한 연결이 설정된다는 것입니다. 웹 응용 프로그램의 경우 일반적으로 허용되는 '모범 사례'는 응용 프로그램이 데이터베이스 연결이 필요할 때 풀에서 사용 가능한 연결을 확인하는 것입니다. 풀에 무료 연결이 있으면 웹 응용 프로그램에서 해당 연결을 가져와 필요에 따라 사용하고 다시 사용할 수 있도록 풀로 반환합니다. 무료 연결이 없으면 응용 프로그램에서 새 연결을 만들어 사용하고 재사용을 위해 풀에 배치합니다.

여러 데이터베이스 사용자 (권한 관리 용)를 사용하는 응용 프로그램을 다루고 있고 연결 풀링을 사용해야하는 경우 응용 프로그램에서 많은 풀 (각 사용자마다 하나씩)을 설정해야합니다. 응용 프로그램이 사용중인 각 데이터베이스 사용자에 대해 최소한 하나의 연결을 확보해야합니다. 이는 비효율적이고 오류가 발생하기 쉽고 불필요하게 복잡합니다.

응용 프로그램의 데이터 액세스를 정말로 제한하려는 경우 데이터베이스가보기에 얼마나 많은 지원을하는지 조사해야합니다. 보기가 잘 지원되면 응용 프로그램의 특정 부분에 맞게 사용자 정의 된보기를 작성할 수 있습니다.

필자가 권장하는 것은 단일 데이터베이스 사용자 만 사용하고 방금 해두었던 시간을 사용하여 응용 프로그램을 더 디버깅하는 것입니다. 더 나은 결과를 얻게되고 더 적은 수의 DBA를 악화시킬 것입니다.

+0

고마워요. 크레이그 –

0

올바르게 이해하면 모듈에서 사용하는 테이블의 사용 권한을 기반으로 모듈 액세스 제어를 구현하는 것이 좋습니다.

모듈 (모듈과 테이블 사이의 링크)을 유지하는 것이 복잡하고 모듈이 액세스하는 각 테이블에 대한 사용 권한을 확인해야한다고 생각합니다.

+0

이 답변으로 귀하의 의견을 남겼습니다! –

+0

다른 +1 lol. 감사합니다. –

+0

실제로 모든 현대의 데이터베이스 엔진은 이러한 종류의 검사를 빠르고 효율적으로 수행하도록 설계되었습니다. 문제는 다른 곳에있다. (내 대답 참조). –