2010-07-02 3 views
0

나는 오랫동안 인터넷을 통해 답변을 찾고있었습니다. 어떻게 PHP와 MySQL 사이의 사용자와 연결을 제어 할 수 있습니까? 내 질문은 우리가 PHP를 통해 mysql 데이터베이스를 만들 때, 실제로 우리는 mysql의 사용자 테이블에 사용자를 생성한다는 것이다. 데이터베이스에 연결할 때 우리가 만든 모든 사용자가 동일한 MySQL 사용자 계정을 사용하여 데이터베이스에 연결합니다. mysql 사용자 테이블에 사용자를 생성해야합니까 (즉, 시스템 테이블에 사용자가 있음)? 그래서 우리가 웹 사이트에 로그인하는 데 사용하는 사용자가 SQL 데이터베이스 사용자 테이블의 사용자와 일치합니까? 그런 다음 각 사용자는 데이터베이스에 연결할 자신의 MySQL 사용자 계정을 가지고 있습니다. 이런 상황을 처리하려면 어떻게해야합니까? 건배PHP MySQL 연결

+1

워,이 두 번 읽은 후, 나는 정말로 여기에 무엇이 묻히고 있는지 모른다. 당신은 사용자 정보의 MySQL 테이블을 언급하고 있습니까? 아니면 DB에 액세스하는 실제 MySQL 사용자 계정에 대해 이야기하고 있습니까? – jordanstephens

+0

안녕하세요. 나는 너를 따라 다니는 데 어려움을 겪고있다. 명확하게하려고 할 수 있습니까? 당신은 mySQL의 사용자 테이블 (자신의 어플리케이션 용)이나 mySQL 사용자 계정에 대해 이야기하고 있습니까? –

+3

필자는 PHP 애플리케이션의 모든 사용자를 위해 특정 테이블에 액세스 할 수있는 MySQL 계정과 같이 개별 MySQL 사용자를 만드는 것에 대해 이야기하고 있다고 생각합니다. 그리고 답은 아니오입니다. 모든 응용 프로그램 사용자에게 MySQL 사용자가 필요하지 않습니다. 대부분의 응용 프로그램은 1 ~ 2 명의 MySQL 사용자 만 사용합니다. –

답변

4

나는 당신의 질문을 이해했다고 생각합니다, 당신은 데이터베이스 측에서 사용자 관리에 대해 질문하고 있습니다.

데이터베이스에는 기본적으로 ALL 권한을 가진 단일 사용자가 있습니다. 이 사용자의 이름은 root (DBMS에 따라 다르지만 MySQL의 경우이 경우)입니다.

그래서 당신이 IMO 두 가지 선택이 있습니다

  • 응용 프로그램 당 새 사용자 작성을과에만 필요한 권한 READ, INSERT 또는 UPDATE있다. 응용 프로그램에서 요구하는 경우 DELETE 특권을 부여하십시오.
  • 데이터베이스에 액세스하는 모든 응용 프로그램에 root을 사용하십시오.
  • 가장 일반적인 권한을 가지며 데이터베이스와 상호 작용해야하는 응용 프로그램 인 ALL에 사용할 사용자를 만듭니다.

사용자가 수행 할 수있는 모든 권한을 사용자가 수행 할 수 있으므로, GRANT은 너무 높은 권한을가집니다.

사용자 당 애플리케이션을 기반으로하는 것이 가장 좋은 방법이라고 생각합니다. (적어도 내게 항상 그렇듯이 꽤 잘했다고 생각합니다.) Blog 응용 프로그램을 원할 때 INSERT, UPDATE, SELECT, [필요한 것이 무엇이든] 권리를 가진 blog 사용자를 생성합니다.

한 번 더 편집 : 질문에 대한 답을 짧게 : 각 응용 프로그램 사용자에게 MySQL 사용자가 필요하지 않습니다.

1

은 MySQL 사용자가되어야합니다. 일반적으로 전체 응용 프로그램에서 사용하는 MySQL 사용자가 한 명 있어야합니다.

0

더 나은 아직 응용 프로그램 당 하나의 사용자를 만듭니다. 해당 사용자에게 저장 프로 시저 및 기타 실행 권한을 부여하십시오. 해당 사용자를 허용하는 모든 유형의 데이터베이스 활동에 대해 저장 프로 시저를 작성하십시오. 또 다른 보안 장벽을 제공합니다.