Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 *.*로 부여한 권한은 이후에 생성되는 데이터베이스에도 적용될까요?

MySQL 전역 권한(*.*)과 이후 생성된 데이터베이스

결론부터 말하면 네, 적용됩니다. *.*를 사용해 부여한 권한은 특정 데이터베이스가 아닌 전역(global) 권한이기 때문입니다. 즉, 권한을 부여한 시점 이후에 새로 생성되는 모든 데이터베이스와 테이블에도 동일한 권한이 자동으로 적용됩니다.

실제 예제를 통해 확인해 보겠습니다.

1. 사용자 생성

먼저 테스트용 사용자를 생성합니다.

mysql> CREATE USER 'Jace'@'localhost' IDENTIFIED BY 'Jace123';
Query OK, 0 rows affected (0.67 sec)

2. 전역 권한 부여 (*.*)

*.*를 사용하면 서버의 모든 데이터베이스에 대한 권한을 부여할 수 있습니다.

mysql> GRANT SELECT ON *.* TO 'Jace'@'localhost';
Query OK, 0 rows affected (0.58 sec)

3. 부여된 권한 확인

사용자에게 부여된 모든 권한은 다음 쿼리로 확인할 수 있습니다.

mysql> SHOW GRANTS FOR 'Jace'@'localhost';

실행 결과는 다음과 같습니다.

+-------------------------------------------+
| Grants for Jace@localhost |
+-------------------------------------------+
| GRANT SELECT ON *.* TO `Jace`@`localhost` |
+-------------------------------------------+
1 row in set (0.14 sec)

정리

*.*로 부여된 권한은 MySQL 서버 수준에서 관리되는 전역 권한이므로, 권한 부여 이후에 새로 만들어지는 데이터베이스에도 별도의 추가 작업 없이 자동으로 적용됩니다. 다만 전역 권한은 모든 데이터베이스에 영향을 주므로, 보안 관점에서 필요한 최소한의 권한만 부여하는 것이 좋습니다.