Jiniya

WEB

MySQL 사용자 생성 및 권한 부여

1 단계 - MySQL 사용자 생성 및 모든 권한 부여

 

MySQL을 사용하기 시작할 때처럼 사용자 이름과 암호가 주어집니다. 이 초기 자격 증명은 '루트 액세스'권한을 부여합니다. 루트 사용자는 해당 데이터베이스 내의 모든 데이터베이스 및 테이블에 대한 모든 액세스 권한을가집니다.


그러나 종종 데이터베이스에 대한 액세스 권한을 부여하지 않고 다른 사람에게 데이터베이스 액세스 권한을 부여해야합니다. 예를 들어 데이터베이스를 관리하기 위해 개발자를 고용했지만 기밀 정보를 삭제하거나 수정할 권한을 부여하지 않으려는 회사는 루트가 아닌 사용자의 자격 증명을 제공합니다. 이렇게하면 회사는 개발자가 데이터로 수행 할 수있는 작업과 수행 할 수없는 작업을 제어 할 수 있습니다.


새로운 사용자를 생성하는 것은 MySQL에서 매우 간단합니다. 새로운 MySQL 사용자를 만드는 방법과 데이터베이스의 모든 권한을 부여하는 방법을 설명합니다. 비 루트 사용자에게 완전한 권한을 부여하는 것이 현명하지는 않지만 사용자 권한에 대해 배우려면 좋은 시작점입니다. 새 사용자를 만들려면 다음 단계를 수행하십시오.


명령 줄에 액세스하여 MySQL 서버에 입력하십시오.

   mysql
   


다음 명령을 실행하십시오.

   CREATE USER 'username'@'localhost' IDENTIFIED BY '123';
   

이 명령에서 '비 루트'는 새 사용자에게 부여한 이름입니다. '123'은이 사용자의 비밀번호입니다. 이러한 값은 따옴표 안에 직접 입력 할 수 있습니다.


단순히이 새로운 사용자를 만드는 것만으로는 충분하지 않습니다. 그들에게 권한을 부여해야합니다. 새로 생성 된 사용자에게 데이터베이스의 모든 권한을 부여하려면 다음 명령을 실행하십시오.

   GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost';
   

변경 사항을 즉시 적용하려면 다음 명령을 입력하여 권한을 플러시하십시오.

   FLUSH PRIVILEGES;
   

새로운 사용자는 루트 사용자와 동일한 데이터베이스에 액세스 할 수 있습니다.


2 단계 - MySQL 사용자에게 특정 권한 부여

 

앞에서 설명한 것처럼 루트가 아닌 사용자에게 루트 수준 액세스 권한을 부여하는 것은 현명하지 않습니다. 대부분의 경우 서로 다른 종류의 사용자에게 서로 다른 수준의 액세스 권한을 부여해야합니다. MySQL은 다음과 같은 간단한 명령을 사용하여 이러한 권한을 부여합니다.


   GRANT [permission type] ON [database name].[table name] TO ‘username’@'localhost’;
   

'권한 유형'값을 새 사용자에게 부여하려는 권한 유형으로 바꾸기 만하면됩니다. 또한 데이터베이스 및 테이블 이름을 지정해야합니다. 그러면 루트 사용자에게 권한 부여에 대한 세밀한 제어 권한이 부여됩니다. 위의 예와 마찬가지로 'username'가 사용자 이름이므로 원하는대로 바꿀 수 있습니다. 

MySQL에는 몇 가지 권한 유형이 있으며 그 중 일부는 아래에 설명되어 있습니다.


  • CREATE - 사용자가 데이터베이스 / 테이블을 생성 할 수있게합니다.
  • SELECT - 사용자가 데이터를 검색 할 수있게합니다.
  • INSERT - 사용자가 테이블에 새 항목을 추가 할 수 있습니다.
  • UPDATE - 사용자가 테이블의 기존 항목을 수정할 수 있습니다.
  • DELETE - 사용자가 테이블 항목을 삭제할 수 있습니다.
  • DROP - 사용자가 전체 데이터베이스 / 테이블을 삭제할 수있게합니다.

이 옵션을 사용하려면 [permission type] 을 해당 키워드로 바꾸십시오 . 여러 권한을 적용하려면 다음과 같은 명령으로 구분하십시오. 예를 들어, 우리는 루트가 아닌 MySQL 사용자에게 CREATE 와 SELECT 권한을 다음 명령으로 할당 할 수 있습니다 :


   GRANT CREATE, SELECT ON * . * TO 'username'@'localhost';
   

물론 사용자로부터 주어진 권한을 취소해야하는 상황에 처할 수도 있습니다. 다음 명령을 사용하여이 작업을 수행 할 수 있습니다.


   REVOKE [permission type] ON [database name].[table name] FROM ‘username’@‘localhost’;
   

예를 들어 루트가 아닌 사용자에 대한 모든 권한을 취소하려면 다음을 사용해야합니다.


   REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';
   

마지막으로 다음 명령을 사용하여 기존 사용자를 완전히 삭제할 수 있습니다.


   DROP USER ‘username’@‘localhost’;
   

이러한 명령을 실행하려면 루트 액세스 권한이 있어야합니다. 또한 권한을 변경 한 후에는 FLUSH PRIVILEGES 를 실행해야합니다 .


결론

MySQL 권한에 대한 기본 사항과 새로운 MySQL 사용자를 생성하는 방법을 배웠다. 특히, 우리는 다음에 대해 배웠습니다.


  • 새로운 사용자 생성 및 모든 권한 부여
  • 사용자에게 특정 권한을 부여하고 권한을 취소하고 사용자를 삭제합니다.

권한 부여는 웹 응용 프로그램을 개발할 때 힘들어 보이지만 데이터베이스 관리 및 유지 관리를위한 중요한 보안 조치입니다. 거의 모든 최신 응용 프로그램은 데이터베이스를 사용하므로 개발자는 MySQL 데이터베이스 권한을 부여하거나 취소하는 방법을 배워야합니다.