MySQL 사용자에게 새 데이터베이스를 생성 할 수있는 권한을 부여하여 자신이 생성 한 데이터베이스에 대한 전체 액세스 권한을 부여 할 수 있습니까 (해당 데이터베이스 삭제 기능 포함). 그러나 자신이 만든 데이터베이스 외에는 다른 사용자의 데이터베이스에 대한 권한이 없어야합니다.
이를 위해 CREATE USER / GRANT 구문은 무엇입니까?
솔루션 : ( johnshen64 의 응답에 따라)
appserver 사용자가 새 데이터베이스를 만들고 액세스 할 수 있기를 원한다고 가정 합니다.
존재하는 경우 삭제 절차 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;
CreateAppDB에서 실행 권한을 appserver @ localhost에 부여합니다.
CreateAppDB ( 'foo'); 호출
사용자 appserver 는 삭제 기능을 포함 하여 새로 생성 된 foo 데이터베이스에 대한 모든 권한을 갖지만 MySQL의 다른 사용자 데이터베이스에 액세스 할 수 없습니다.
이 작업을 수행 할 수있는 MySQL 문은 없지만 저장 프로 시저를 작성하여이를 관리하고 사용자에게 저장 프로 시저를 부여 할 수 있습니다. 그런 다음 절차 내에서 db를 만들고 언급 된 모든 권한을 사용자에게 부여 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다