사용자가 특정 스키마에 접근하지 못하도록 하려면 delete 명령어를 사용해야 합니다. 다음은 구문입니다 -
DELETE FROM mysql.db WHERE Db IN("yourSpecificSchema","yourSpecificSchema\_%") AND 사용자 ="yourUserName" AND 호스트 ="yourHostName";
사용자가 특정 스키마에 액세스하지 못하도록 위의 구문을 구현해 보겠습니다. 먼저 MySQL.user 테이블의 모든 사용자와 호스트를 표시해 보겠습니다.
mysql> MySQL.user에서 사용자, 호스트 선택;
이것은 다음과 같은 출력을 생성합니다 -
+------------------+-----------+| 사용자 | 호스트 |+------------------+-----------+| 밥 | % || 사용자2 | % || mysql.infoschema | % || mysql.세션 | % || mysql.sys | % || 루트 | % || @사용자 이름@ | 로컬 호스트 || 아담 스미스 | 로컬 호스트 || 크리스 | 로컬 호스트 || 데이비드 | 로컬 호스트 || 제임스 | 로컬 호스트 || 존 | 로컬 호스트 || 존 도 | 로컬 호스트 || 사용자1 | 로컬 호스트 || 오전 | 로컬 호스트 || 학생 | 로컬 호스트 || mysql.infoschema | 로컬 호스트 || mysql.세션 | localhost |+------------------+-----------+18행 세트(0.00초)
여기서 호스트 이름이 'localhost'인 사용자 'Chris'가 이름이 'sample'인 특정 스키마에 액세스하는 것을 방지합니다 -
mysql> DELETE FROM mysql.db WHERE Db IN("sample","sample\_%") AND User="Chris" AND Host="localhost";Query OK, 영향을 받는 행 0개(0.00초)사전>위 쿼리를 실행한 후 FLUSH를 사용해야 합니다.
mysql> FLUSH PRIVILEGES;쿼리 OK, 영향을 받는 행 0개(0.06초)