이 명령은 현재의 현재 사용자 식별자를 설정합니다. SQL 세션은 다음과 같습니다.역할명. 는 역할 이름은 식별자 또는 문자열로 작성할 수 있습니다. 문자 그대로. 이후역할 롤 토토, 권한 SQL 명령 확인은 명명된 역할처럼 수행됩니다. 원래 로그인했던 사람이었습니다.
지정된역할명반드시 현재 세션 사용자가 속한 역할입니다. (만약 세션 사용자는 슈퍼유저이므로 어떤 역할이든 선택할 수 있습니다.)
그세션그리고로컬수식자는 일반과 동일하게 작동합니다PostgreSQL : 문서 : 8.3 : 토토 캔명령.
그없음그리고리셋양식은 현재 사용자 식별자를 다음으로 재설정합니다. 현재 세션 사용자 식별자여야 합니다. 이러한 양식은 다음과 같습니다. 모든 사용자에 의해 실행됩니다.
이 명령을 사용하면 권한을 추가하거나 자신의 특권을 제한하십시오. 세션 사용자 역할에 다음이 있는 경우상속됨속성이면 자동으로 모든 역할의 모든 권한을 갖습니다.역할 롤 토토에; 이 경우에는역할 롤 토토모든 권한을 효과적으로 삭제합니다. 세션 사용자와 다른 역할에 직접 할당됨 의 회원이 되어 해당 권한만 남게 됩니다. 명명된 역할. 반면에 세션 사용자 역할에 다음이 있는 경우상속 없음속성,역할 롤 토토다음에 직접 할당된 권한을 삭제합니다. 세션 사용자는 대신에 사용할 수 있는 권한을 얻습니다. 이름이 지정된 역할입니다.
특히, 수퍼유저가 다음을 선택하는 경우역할 롤 토토수퍼유저가 아닌 역할로 전환하면 그녀는 자신을 잃게 됩니다. 슈퍼유저 권한.
역할 롤 토토다음과 비슷한 효과가 있습니다PostgreSQL :, 그러나 관련된 권한 확인은 다음과 같습니다. 아주 다릅니다. 또한,세션 설정 승인나중에 허용되는 역할을 결정합니다.역할 롤 토토명령, 반면 변경 역할역할 롤 토토변경하지 않습니다. 나중에 허용되는 역할 집합SET 역할.
역할 롤 토토a 내에서는 사용할 수 없습니다.보안 정의자함수.
세션_사용자 선택, CURRENT_USER; 세션_사용자 | 현재_사용자 ------------+--------------- 피터 | 피터 역할 롤 토토 '폴'; SESSION_USER, CURRENT_USER 선택; 세션_사용자 | 현재_사용자 ------------+--------------- 피터 | 폴