MySQL 데이터베이스 사용자 : 어떤 권한이 필요합니까?


52

WordPress에 대한 짧은 설치 지침 ( "5 분" ) 상태는 다음과 같습니다.

웹 서버에서 WordPress 용 데이터베이스와 데이터베이스 액세스 및 수정에 대한 모든 권한을 가진 MySQL 사용자를 작성하십시오.

전문적으로 새 블로그를 설정하는 동안 MySQL 데이터베이스 사용자 권한 / 권한 구성이 제공하는 것에 어떻게 매핑되는지 궁금합니다.

  • 데이터 : SELECT , INSERT, UPDATE,DELETE
  • 정의 : CREATE , ALTER,DROP
  • 특별한: INDEX
  • 더:
    1. LOCK TABLES
    2. REFERENCES
    3. CREATE TEMPORARY TABLES
    4. CREATE VIEW
    5. SHOW VIEW
    6. CREATE ROUTINE
    7. EXECUTE
    8. ALTER ROUTINE

나는 처음 세 그룹에 대해 확신합니다. 여기에서 이름을 Data, Definition 및 Extra로 지정했습니다. 그러나 More 항목 아래의 다른 항목은 어떻습니까? 일반적으로 나는 필요하지 않지만 두 번째 의견을 얻고 싶습니다.

답변:


13

다른 사람은 지적한대로 필요하지 않습니다.

Btw, 당신이 할 수있는 일은 요청 된 페이지를 기반으로 조건부로 사용자 / 패스를 설정하는 것입니다. 일반적인 사용을 위해 선택 / 삽입 / 업데이트 / 삭제 권한이없고 업그레이드 페이지를 방문 할 때 정의 / 색인 관련 항목에 대한 권한이 있습니다.


1
WordPress 환경에서 요청 된 페이지기반으로 사용자 / 패스조건부로 설정하는 방법에 대한 참조가 있습니까? TA
superjos

@ superjos : 내 머리 꼭대기를 알고 있지는 않지만 wp-config에서 URL이 관련 / wp-admin 페이지 (예 : 업그레이드, 테마 활성화 및 플러그인 활성화)는 다른 모든 작업을 수행 할 수있는 대체 사용자를 정의합니다.
Denis de Bernardy

34

"모든 권한"은 일반적으로 사용자에게 모든 것을 웅장해야한다는 것을 의미합니다. 그러나 ...

MySQL 사용자 만 필요로한다고 주장하는 기사 를 적어도 하나 찾았습니다 .

  • 고르다
  • 끼워 넣다
  • 최신 정보

더 깊이 파고 들자면 (자동 업데이트, 플러그인 설치 / 제거 등) 완전히 작동하려면 WordPress에 추가 권한이 필요하다는 것을 알았습니다.

  • 지우다
  • ALTER (업데이트 용)
  • 테이블 만들기
  • 드롭 테이블

또한 참조되지 않지만 의미가 있습니다.

  • 인덱스

그러나 이것들은 내가 찾을 수있는 유일한 두 가지 참고 문헌이며 다른 곳에 게시 된 의견에 의해 뒷받침됩니다. 그래도 GRANT ALL을 사용하는 것이 좋지만 DB 사용 을 절대적으로 제한 해야하는 경우이 7 가지 권한으로 시작하여 모든 것이 예상대로 작동하는지 완전히 테스트 하십시오.


의견을 보내 주셔서 감사합니다. 이 사이트는 설치 사이트가 아니고 대신 모든 것을 고수하기 때문에 전체를 부여하지 않았습니다. 인덱스. 지금까지는 좋아 보입니다. 다음 날 계속 추적한다고 생각합니다. 실제 사이트입니다. 많은 플러그인 사용 등. INDEX의 경우 코어 및 mysql 매뉴얼도 약간 검색 할 수 있습니다.
hakre

1
써드 파티 플러그인은 원하는 모든 SQL 문을 호출 할 수 있습니다. 따라서 취소 한 권한에 따라 항목을 설치하기 전에이를 적절히 조사하십시오.
EAMann

12

데이터베이스 사용자 권한 제한에 대해 Codex가 말한 내용은 다음과 같습니다.

블로그 게시물 게시, 미디어 파일 업로드, 메모 게시, 새 WordPress 사용자 생성 및 WordPress 플러그인 설치와 같은 일반적인 WordPress 작업의 경우 MySQL 데이터베이스 사용자는 MySQL 데이터베이스에 대한 데이터 읽기 및 데이터 쓰기 권한 만 필요합니다. 선택, 삽입, 업데이트 및 삭제

따라서 DROP, ALTER 및 GRANT와 같은 다른 데이터베이스 구조 및 관리 권한을 취소 할 수 있습니다. 이러한 권한을 취소하면 격리 정책도 개선됩니다.

참고 : 일부 플러그인, 테마 및 주요 WordPress 업데이트는 새 테이블 추가 또는 스키마 변경과 같은 데이터베이스 구조 변경이 필요할 수 있습니다. 이 경우 플러그인을 설치하거나 소프트웨어를 업데이트하기 전에 데이터베이스 사용자에게 필요한 권한이 일시적으로 허용됩니다.

http://codex.wordpress.org/Hardening_WordPress


2
가능한 한 최소 권한의 원칙을 실천하려고합니다. 인용 된 (유용한) 정보는 더 이상 링크 된 Codex 기사에 없으므로 여기를 복사 해 주셔서 감사합니다.
Anthony G-Monica

2

Redburn의 게시물에서 "참고"와 관련하여 Wordpress Codex에는 업데이트 및 데이터베이스 스키마 변경 사항에 대해서도 읽어야한다는 경고가 있습니다.

(편집 : 그러나 사용자를 만들거나 업데이트 할 때 더 이상 권한 목록에서 "GRANT" 가 표시 되지 않습니다 . 아마도 "CREATE" 가 목록에 추가되어야합니까? , 2016 년 3 월-)

경고 :
이러한 권한이없는 업데이트 시도 [ SELECT, INSERT, UPDATE, DELETE, DROP, ALTER 및 GRANT]는 데이터베이스 스키마 변경이 발생할 때 문제를 일으킬 수 있습니다. 따라서 이러한 권한을 취소하지 않는 것이 좋습니다. 보안상의 이유로이 작업을 수행해야 할 필요가 있다고 판단되면 테스트 한 정기적 인 전체 데이터베이스 백업이 유효하고 쉽게 복원 할 수있는 확실한 백업 계획을 먼저 갖추어야합니다. 실패한 데이터베이스 업그레이드는 일반적으로 데이터베이스를 이전 버전으로 복원하고 적절한 권한을 부여한 다음 WordPress에서 데이터베이스 업데이트를 다시 시도하도록하여 해결할 수 있습니다. 데이터베이스를 복원하면 데이터베이스가 이전 버전으로 다시 돌아가고 WordPress 관리 화면에서 이전 버전을 감지하여 필요한 SQL 명령을 실행할 수 있습니다. 대부분의 WordPress 업그레이드는 스키마를 변경하지 않지만 일부는 변경합니다. 메이저 포인트 업그레이드 만 (3.7에서 3.8, 예를 들어)는 스키마를 변경합니다. 사소한 업그레이드 (3.8에서 3.8.1)는 일반적으로 그렇지 않습니다. 그럼에도 불구하고 정기적 인 백업을 유지하십시오.

코덱스 : http://codex.wordpress.org/Hardening_WordPress


0

본인의 의견은 위의 @EAMann과 동일하며 그가 참조한 출처는 다음과 같습니다. GRANT ALL은 사이트가 기능적이고 미래를 보장 할 수 있도록 보장하는 데 필요합니다. 생산 현장에서도 사용 설명서를 준수해야합니다.

WordPress 코어 및 일부 플러그인에 코드를 제공하는 사람은 사용 설명서 (GRANT ALL PRIVILEGES ON wpdatabasename. * ~ "wordpressusername"@ "hostname")에 제안 된 기본 DB 권한을 유지하는 것이 좋습니다.

WordPress 소스 코드 (현재와 미래 모두)는 WordPress DB 사용자에게 주어진 WordPress 데이터베이스에 대한 모든 DB 권한이 있다고 가정합니다. 설치 프로그램에 DB 권한이 없으면 WordPress를 업그레이드하고 플러그인을 추가 할 때 문제가 발생할 수 있습니다.

따라서 실제로 수행중인 작업을 알고, 매우 구체적인 요구 사항이 있으며 사용자 정의 DB 권한이 있다는 것을 잊지 않으면 매뉴얼에서 권장하는 기본 DB 권한과 다른 DB 권한을 사용해서는 안됩니다.

Codex 페이지는 다양한 시스템 및 스크린 샷의 예제를 통해이를 수행하는 방법에 대해 업데이트되었습니다. https://codex.wordpress.org/Installing_WordPress#Step_2:_Create_the_Database_and_a_User

PHPMyAdmin을 통해 Databse 이름 및 사용자 작성 : https://codex.wordpress.org/Installing_WordPress#Using_phpMyAdmin

MySQL 명령 행 클라이언트를 통해 Databse 이름 및 사용자 작성 : https://codex.wordpress.org/Installing_WordPress#Using_the_MySQL_Client

mysql> CREATE DATABASE wpdatabasename;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON wpdatabasename.* TO "wordpressusername"@"hostname"
    -> IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.