GRANT 명령으로 권한을 부여할 때 특정 객체를 명시하지 않음GRANT 명령으로 권한을 부여할 때 특정 객체를 명시해야 함ALL PRIVILEGES 명령은 글로벌과 객체 권한 모두에 사용될 수 있다.GRANT privilege_list ON db.table TO 'user'@'host';
GRANT 명령어로 권한을 부여한다.privilege_list에 여러 권한을 구분자(,)로 명시할 수 있다.ON 키워드 뒤에는 권한을 부여할 오브젝트를 명시한다.
TO 키워드 뒤에는 권한을 부여할 사용자를 명시한다.GRANT SUPER ON *.* TO 'user'@'localhost';
ON 절 뒤에 항상 *.*을 사용해야 한다.
GRANT EVENT ON *.* TO 'user'@'localhost';
GRANT EVENT ON employees.* TO 'user'@'localhost';
*.* 사용 가능employees.department와 같이 테이블까지 명시해 테이블에 대해 권한을 부여할 수는 없다.
employees.*와 같이 명시해야 한다.GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user'@'localhost';
GRANT SELECT,INSERT,UPDATE,DELETE ON employees.* TO 'user'@'localhost';
GRANT SELECT,INSERT,UPDATE,DELETE ON employees.department TO 'user'@'localhost';
*.*)employees.*)employees.department)특정 칼럼에 대해 권한을 부여하는 경우 문법이 조금 달라진다.
GRANT SELECT,INSERT,UPDATE(dept_name) ON employees.department TO 'user'@'localhost';ON employees.department TO 'user'@'localhost';
SELECT, INSERT는 모든 칼럼에서 수행할 수 있지만 UPDATE는 dept_name 칼럼에 대해서만 수행할 수 있게 설저한 것이다.SHOW GRANTS 명령 사용mysql.usermysql.dbmysql.tables_privmysql.columns_privmysql.proc_privmysql.global_grants