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

MySQL 트리거 생성 및 사용에 필요한 권한 정리

트리거를 사용하는 데 필요한 권한은 무엇입니까?

MySQL에서 CREATE 또는 DROP 문을 사용하여 트리거를 생성하거나 삭제하려면 SUPER 권한이 반드시 필요합니다. 이는 트리거가 일반 사용자의 세션과 무관하게 실행될 수 있어야 하기 때문에 높은 수준의 권한이 요구되기 때문입니다.

또한 트리거 내부의 SQL문에서 OLD 또는 NEW 키워드를 사용하는 경우에는 아래와 같은 추가적인 권한이 필요합니다.

1. UPDATE 권한 — SET NEW.column_name = value

트리거 본문에서 SET NEW.column_name = value 형태로 특정 컬럼에 새로운 값을 할당하려면, 해당 컬럼에 대한 UPDATE 권한을 가지고 있어야 합니다.

2. SELECT 권한 — 표현식에서 NEW.column_name 사용

표현식 안에서 NEW.column_name을 사용하여 컬럼의 새 값을 참조하려면, 해당 컬럼에 대한 SELECT 권한이 필요합니다.

요약

  • 트리거 생성 및 삭제: SUPER 권한 필수
  • SET NEW.column_name = value 사용 시: 해당 컬럼의 UPDATE 권한 필요
  • 표현식에서 NEW.column_name 참조 시: 해당 컬럼의 SELECT 권한 필요

따라서 트리거를 설계할 때는 트리거를 등록하는 계정뿐 아니라, 트리거 본문에서 수행되는 작업(컬럼 값 읽기 및 쓰기)에 필요한 세부 권한까지 함께 고려해야 합니다.