프로그래밍 언어/Database

MySQL : 데이터베이스에 대한 ** 모든 ** 권한 부여

Rateye 2021. 7. 16. 10:10
728x90
반응형

 

질문 : MySQL : 데이터베이스에 대한 ** 모든 ** 권한 부여

예를 들어 'mydb'와 같은 데이터베이스를 만들었습니다.

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH';
GRANT ALL ON mydb.* TO 'myuser'@'%';
GRANT ALL ON mydb TO 'myuser'@'%';
GRANT CREATE ON mydb TO 'myuser'@'%';
FLUSH PRIVILEGES;

이제 어디서나 데이터베이스에 로그인 할 수 있지만 테이블을 만들 수는 없습니다.

해당 데이터베이스 및 (향후) 테이블에 대한 모든 권한을 부여하는 방법. 'mydb'데이터베이스에 테이블을 만들 수 없습니다. 나는 항상 얻는다 :

CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
답변

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%' WITH GRANT OPTION;

이것이 내가 "수퍼 유저"권한을 만드는 방법입니다 (일반적으로 호스트를 지정하지만).

이 답변은 액세스 문제를 해결할 수 있지만 WITH GRANT OPTION 은 다른 사용자의 권한을 편집 할 수있는 MySQL 사용자를 만듭니다.

GRANT OPTION 권한을 사용하면 다른 사용자에게 부여하거나 자신이 소유 한 권한을 다른 사용자로부터 제거 할 수 있습니다.

보안상의 이유로 일반인이 액세스 할 수있는 모든 프로세스 (예 : 웹 사이트)에이 유형의 사용자 계정을 사용해서는 안됩니다. 이러한 종류의 사용에 대한 데이터베이스 권한 만있는 사용자 를 생성하는 것이 좋습니다.

출처 : https://stackoverflow.com/questions/5016505/mysql-grant-all-privileges-on-database
728x90
반응형