2016-08-29 6 views
0

결과가 quote_ident(table_name::text)이고 파이프 라인 문에 테이블이 아닌 다른 값을 전달하면 어떤 차이가 있습니까? 예를 들어 는함수의 반환 값의 차이점

CREATE TRIGGER audit_trigger_stm AFTER ' || stm_targets || ' ON ' || quote_ident(table_name::text) ... 

CREATE TRIGGER audit_trigger_stm AFTER ' || stm_targets || ' ON ' || table_name ... 
+0

사용 방법에 대한 예를 들어 질문을 펼칠 수 있습니까? * 파이프 라인 선언 *이 무슨 의미입니까? –

+0

예, 예를 들었습니다 – user6770216

+0

이 컨텍스트에서는 표현식을 사용할 수 없습니다. [syntaxt] (https://www.postgresql.org/docs/9.5/static/sql-createtrigger.html)는 명확합니다 : – klin

답변

2

사이의 차이가 차이 quote_ident를 사용하지 않고 구성 문 table_name 공백, 따옴표 또는 다른 미묘한 포함 된 경우 무효가됩니다 (또는 예약 된 점이다 SQL 키워드).

또한 quote_ident을 사용하면 table_name이 신뢰할 수없는 출처에서 온 경우 SQL 주입을 방지 할 수 있습니다.

관련 문제