programing

하나의 데이터베이스에만 파일 허용

telebox 2023. 7. 31. 21:20
반응형

하나의 데이터베이스에만 파일 허용

john mysql 사용자에 대해 LOAD DATA 명령을 허용하고 싶습니다.그래서 나는 mysql terminal에 root로 로그인했고 다음과 같은 성명서를 발표했습니다.

grant file on johndatabase.* to 'john'@'localhost';

하지만 다음과 같은 오류가 발생했습니다.

ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

대체할 경우johndatabase.*와 함께*.*그러면 모든 것이 작동합니다.하지만 그렇지 않습니다.*.*모든 데이터베이스를 의미합니까?john mysql 사용자를 john 데이터베이스로만 제한하고 싶습니다.

단일 데이터베이스에 대해서만 FILE 권한을 부여할 수 없습니다.그것은 논리적으로 말이 안 됩니다.문서에서 말하는 것을 고려해 보십시오.

FILE 권한은 LOAD DATA INFILE 및 SELECT ... IN OUTFILE 문 및 LOAD_FILE() 함수를 사용하여 서버 호스트에서 파일을 읽고 쓸 수 있는 권한을 부여합니다.FILE 권한이 있는 사용자는 MySQL 서버에서 읽을 수 있거나 읽을 수 있는 서버 호스트의 모든 파일을 읽을 수 있습니다. (서버가 이러한 파일에 액세스할 수 있기 때문에 사용자가 데이터베이스 디렉토리의 모든 파일을 읽을 수 있음을 의미합니다.

따라서 FILE 권한은 글로벌 권한입니다.서버의 모든 파일에 영향을 미치며 글로벌 명령(예: 글로벌 명령)에만 액세스할 수 있습니다.LOAD DATA INFILE등), 데이터베이스로 범위가 지정되지 않았습니다.FILE 권한을 부여하는 유일한 방법은 다음 구문을 사용하는 모든 데이터베이스에 대한 것입니다.

GRANT FILE ON *.* TO 'john'@'localhost';

FILE 권한을 사용하면 mysql 서버가 액세스할 수 있는 파일 시스템에 대한 액세스 권한을 사용자에게 부여할 수 있습니다.따라서 사용자가 파일 시스템 수준의 모든 데이터베이스에 액세스할 수 있으므로 특정 데이터베이스로 제한하는 것은 유용하지 않습니다.그렇기 때문에 설정할 수 있습니다.*.*.

언급URL : https://stackoverflow.com/questions/13552206/grant-file-on-just-one-database

반응형