MySQL 사용자에게 데이터베이스를 생성 할 수있는 권한을 부여하고 해당 데이터베이스에만 액세스하도록 허용합니다.

진 고 이크 만

MySQL 사용자에게 새 데이터베이스를 생성 할 수있는 권한을 부여하여 자신이 생성 한 데이터베이스에 대한 전체 액세스 권한을 부여 할 수 있습니까 (해당 데이터베이스 삭제 기능 포함). 그러나 자신이 만든 데이터베이스 외에는 다른 사용자의 데이터베이스에 대한 권한이 없어야합니다.

이를 위해 CREATE USER / GRANT 구문은 무엇입니까?

솔루션 : ( johnshen64 의 응답에 따라)

appserver 사용자가 새 데이터베이스를 만들고 액세스 할 수 있기를 원한다고 가정 합니다.

  1. 으로 루트 , 다음과 같은 저장 프로 시저를 만들 :
존재하는 경우 삭제 절차 CreateAppDB; 
DELIMITER // 
절차 CreateAppDB CREATE ( 
    DB_NAME VARCHAR IN을 (50)) 
BEGIN 
    - 데이터베이스 만들기 

    (DB_NAME, 'DATABASE 만들기') = CONCAT를 SET의 @s을; 
    @s에서 stmt 준비; 
    EXECUTE stmt; 
    할당 해제 준비 stmt; 

    -권한 부여 

    SET @s = CONCAT ( 'GRANT ALL ON', db_name, '. * TO appserver @ localhost'); 
    @s에서 stmt 준비; 
    EXECUTE stmt; 
    할당 해제 준비 stmt; 
END // 
DELIMITER;
  1. 이 절차를 실행할 권한을 appserver 사용자에게 부여합니다 .
CreateAppDB에서 실행 권한을 appserver @ localhost에 부여합니다.
  1. appserver로 로그인 하고이 절차를 실행합니다. 예를 들어, 데이터베이스라는 만듭니다 foo는 :
CreateAppDB ( 'foo'); 호출

사용자 appserver삭제 기능을 포함 하여 새로 생성 된 foo 데이터베이스에 대한 모든 권한을 갖지만 MySQL의 다른 사용자 데이터베이스에 액세스 할 수 없습니다.

존쉔 64

이 작업을 수행 할 수있는 MySQL 문은 없지만 저장 프로 시저를 작성하여이를 관리하고 사용자에게 저장 프로 시저를 부여 할 수 있습니다. 그런 다음 절차 내에서 db를 만들고 언급 된 모든 권한을 사용자에게 부여 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관