표 9-40세션과 시스템을 추출하는 몇 가지 사설 토토을 보여줍니다 정보.
표 9-40. 세션 정보 사설 토토
이름 | 반환 유형 | 설명 |
---|---|---|
current_database () |
이름 | 현재 데이터베이스 이름 |
current_schema () |
이름 | 현재 스키마의 이름 |
current_schemas (부울) |
이름 [] | 선택적으로 포함하는 검색 경로에서 스키마 이름 암시 적 체계 |
current_user |
이름 | 현재 실행 컨텍스트의 사용자 이름 |
inet_client_addr () |
inet | 원격 연결 주소 |
inet_client_port () |
int | 원격 연결 포트 |
inet_server_addr () |
inet | 로컬 연결 주소 |
inet_server_port () |
int | 로컬 연결 포트 |
pg_my_temp_schema () |
OID | 세션의 임시 스키마의 OID 또는 0이면 0 |
pg_is_other_temp_schema (OID) |
부울 | Schema는 다른 세션의 임시 스키마입니까? |
PG_POSTMASTER_START_TIME () |
시간대가있는 타임 스탬프 | 서버 시작 시간 |
session_user |
이름 | 세션 사용자 이름 |
사용자 |
이름 | 동등한current_user |
버전 () |
텍스트 | PostgreSQL버전 정보 |
thesession_user
보통입니다
현재 데이터베이스 연결을 시작한 사용자; 하지만
슈퍼업자는이 설정을 변경할 수 있습니다.세션 설정
권한 부여. 그만큼current_user
허가에 적용되는 사용자 식별자입니다
확인. 일반적으로 세션 사용자와 같지만
로 변경PostgreSQL : 문서 : 8.2 : 역할 토토 꽁 머니. 또한 함수 실행 중에도 변경됩니다
속성Security Definer. 유닉스에서
Parlance, 세션 사용자는입니다."실제
사용자"그리고 현재 사용자는입니다."효과적인 사용자".
참고 :
current_user
,session_user
및사용자
특별한 구문 상태가있어SQL: 호출해야합니다 괄호 후드없이.
current_schema
이름을 반환합니다
검색 경로의 앞쪽에있는 스키마 (또는 널
값 검색 경로가 비어있는 경우). 이것이 스키마입니다
생성 된 모든 테이블 또는 기타 지정된 개체에 사용됩니다.
대상 스키마를 지정하지 않고current_schemas (부울)
배열을 반환합니다
현재 검색 경로에서 모든 스키마의 이름. 그만큼
부울 옵션은 암시 적으로 포함되는지 여부를 결정합니다
와 같은 시스템 스키마PG_CATALOGare
검색 경로에 포함되어 있습니다.
참고 :검색 경로는 실행 시간에 변경 될 수 있습니다. 명령은 다음과 같습니다.
SEALL_PATH를 설정하십시오.스키마[, 스키마, ...]
inet_client_addr
IP를 반환합니다
현재 클라이언트의 주소 및inet_client_port
포트 번호를 반환합니다.inet_server_addr
IP를 반환합니다
서버가 현재 연결을 수락 한 주소 및inet_server_port
포트를 반환합니다
숫자. 이 모든 사설 토토은 현재 연결이 있으면 NULL을 반환합니다
유닉스 도메인 소켓을 통해입니다.
pg_my_temp_schema
반환합니다
현재 세션의 임시 스키마의 OID 또는
없음 (임시 테이블을 만들지 않았기 때문에).pg_is_other_temp_schema
반환
주어진 OID가 다른 세션의 임시의 OID 인 경우.
개요. (예를 들어, 다른 것을 제외하는 데 유용 할 수 있습니다
카탈로그 디스플레이에서 세션의 임시 테이블.)
PG_POSTMASTER_START_TIME
반환
그만큼시간대가있는 타임 스탬프서버 시작.
버전
문자열을 반환합니다
설명PostgreSQL서버 버전.
표 9-41사용자가 객체 액세스를 쿼리 할 수있는 함수를 나열합니다. 프로그래밍 방식으로 특권. 보다토토 결과 : 문서 : 8.2 : 권한특권에 대한 자세한 내용은
표 9-41. 액세스 권한 문의 사설 토토
이름 | 반환 유형 | 설명 |
---|---|---|
has_database_privilege (사용자, 데이터베이스, 특권) |
부울 | 사용자는 데이터베이스에 대한 권한이 있습니까 |
has_database_privilege (데이터베이스, 특권) |
부울 | 현재 사용자는 데이터베이스에 대한 권한이 있습니까 |
has_function_privilege (user, 사설 토토, Privilege) |
부울 | 사용자는 사설 토토에 대한 특권이 있습니까 |
has_function_privilege (사설 토토, 특권) |
부울 | 현재 사용자는 사설 토토에 대한 특권이 있습니까 |
has_language_privilege (사용자, 언어, 특권) |
부울 | 사용자는 언어에 대한 특권이 있습니까 |
has_language_privilege (언어, 특권) |
부울 | 현재 사용자는 언어에 대한 특권이 있습니까 |
has_schema_privilege (user, 스키마,
특권) |
부울 | 사용자는 스키마에 대한 권한이 있습니까 |
has_schema_privilege (스키마, 특권) |
부울 | 현재 사용자는 스키마에 대한 권한이 있습니까 |
has_table_privilege (사용자, 테이블,
특권) |
부울 | 사용자는 테이블에 대한 특권이 있습니까 |
has_table_privilege (테이블, 특권) |
부울 | 현재 사용자가 표에 대한 특권이 있습니까 |
has_tablespace_privilege (사용자, 테이블 스페이스, 특권) |
부울 | 사용자는 테이블 스페이스에 대한 특권이 있습니까 |
has_tablespace_privilege (테이블 스페이스, 특권) |
부울 | 현재 사용자는 테이블 스페이스에 대한 특권이 있습니까 |
PG_HAS_ROLE (사용자, 역할,
특권) |
부울 | 사용자는 역할에 대한 특권이 있습니까 |
PG_HAS_ROLE (역할, 특권) |
부울 | 현재 사용자는 역할에 대한 특권이 있습니까 |
has_database_privilege
확인
사용자가 특정 방식으로 데이터베이스에 액세스 할 수 있는지 여부 그만큼
그 주장에 대한 가능성은와 유사하다.has_table_privilege
. 원하는 액세스
권한 유형은를 평가해야합니다.Create,
Connect, 임시또는temp(
에 해당합니다.임시).
has_function_privilege
확인
사용자가 특정 방식으로 사설 토토에 액세스 할 수 있는지 여부 그만큼
그 주장에 대한 가능성은와 유사하다.has_table_privilege
. 함수를 지정할 때
OID가 아닌 텍스트 문자열로 허용 된 입력은 다음과 같습니다.
동일Regrocedure데이터 유형 (참조PostgreSQL : 문서 : 8.2 : 객체 식별자 토토 사이트 순위). 원하는 액세스
권한 유형은를 평가해야합니다.execute.
예는 다음과 같습니다.
select has_function_privilege ( 'joeuser', 'myfunc (int, text)', 'execute');
has_language_privilege
확인
사용자가 특정에서 절차 언어에 액세스 할 수 있는지 여부
방법. 논쟁의 가능성은와 유사합니다.has_table_privilege
. 원하는
액세스 권한 유형은 평가해야합니다.usage.
has_schema_privilege
확인
사용자가 특정 방식으로 스키마에 액세스 할 수 있는지 여부 그만큼
그 주장에 대한 가능성은와 유사하다.has_table_privilege
. 원하는 액세스
권한 유형은를 평가해야합니다.Create또는usage.
has_table_privilege
확인
사용자가 특정 방식으로 테이블에 액세스 할 수 있는지 여부. 사용자
이름 또는 OID (에 의해 지정할 수 있습니다.pg_authid.oid) 또는 인수가 생략 된 경우current_user
가 가정됩니다. 테이블
이름 또는 OID로 지정할 수 있습니다. (따라서 실제로 6 개가 있습니다
변형has_table_privilege
,
수와 유형으로 구별 할 수 있습니다.
인수.) 이름으로 지정할 때 이름은 될 수 있습니다
필요한 경우 스키마 자격. 원하는 액세스 권한 유형
텍스트 문자열로 지정되며
값select, 삽입, 업데이트,
삭제, 참조또는트리거.
(그러나 문자열의 경우는 중요하지 않습니다.) 예제
이다:
select has_table_privilege ( 'myschema.mytable', 'select');
has_tablespace_privilege
확인
사용자가 특정 방식으로 테이블 스페이스에 액세스 할 수 있는지 여부. 그만큼
그 주장에 대한 가능성은와 유사하다.has_table_privilege
. 원하는 액세스
권한 유형은를 평가해야합니다.생성.
PG_HAS_ROLE
a
사용자는 특정 방식으로 역할에 액세스 할 수 있습니다. 가능성
그것의 주장은와 유사하다.has_table_privilege
. 원하는 액세스
권한 유형은를 평가해야합니다.회원또는usage. 회원직간접 멤버십을 나타냅니다
역할 (즉, 할 권리세트
역할), whileusage역할의 특권은없이 즉시 제공됩니다
행위역할 설정.
사용자가 권한에 대한 보조금 옵션을 보유하고 있는지 테스트하려면 부록보조금 옵션특권 키 단어; 예를 들어'업데이트로 보조금 옵션 '.
표 9-42특정 객체가 있는지 여부를 결정하는 함수를 보여줍니다가시적현재 스키마 검색에서 길. 포함 된 스키마가있는 경우 테이블이 보이는 것으로 알려져 있습니다. 검색 경로와 같은 이름의 테이블이 이전에 나타나지 않습니다. 검색 경로에서. 이것은 말하는 진술과 같습니다 표는 명시 적 스키마없이 이름으로 참조 할 수 있습니다 자격. 예를 들어, 모든 가시적 인 이름을 나열합니다 테이블 :
pg_class에서 pg_table_is_visible (oid);에서 relname을 선택하십시오.
표 9-42. 스키마 가시성 문의 사설 토토
이름 | 반환 유형 | 설명 |
---|---|---|
pg_conversion_is_visible (converion_oid) |
부울 | 검색 경로에서 전환이 표시됩니다 |
pg_function_is_visible (function_oid) |
부울 | 검색 경로에서 사설 토토이 표시됩니다 |
pg_operator_is_visible (Operator_oid) |
부울 | 운영자가 검색 경로에 표시됩니다 |
pg_opclass_is_visible (opclass_oid) |
부울 | 검색 경로에서 운영자 클래스가 표시됩니다 |
pg_table_is_visible (table_oid) |
부울 | 검색 경로에서 테이블이 표시됩니다 |
pg_type_is_visible (type_oid) |
부울 | 검색 경로에서 표시되는 유형 (또는 도메인)입니다 |
pg_conversion_is_visible
,
pg_function_is_visible
,
pg_operator_is_visible
,
pg_opclass_is_visible
, pg_table_is_visible
및pg_type_is_visible
가시성 검사를 수행하십시오
변환, 사설 토토, 운영자, 운영자 클래스, 테이블,
그리고 유형. 참고pg_table_is_visible
와 함께 사용할 수 있습니다
보기, 색인 및 시퀀스;pg_type_is_visible
와 함께 사용할 수 있습니다
도메인. 사설 토토 및 연산자의 경우 검색의 객체입니다
같은 이름의 객체가없는 경우 경로가 보입니다및 인수 데이터
유형경로 초기. 운영자 클래스의 경우 둘 다
이름 및 관련 인덱스 액세스 방법이 고려됩니다.
이 모든 함수는 객체를 식별하기 위해 객체 OID가 필요합니다. 확인하려면. 이름으로 객체를 테스트하고 싶다면 OID 별칭 유형을 사용하는 것이 편리합니다 (Regclass, Regtype, 레지비어또는Regoperator), 예를 들어
pg_type_is_visible을 선택하십시오 ( 'myschema.widget':: regtype);
자격이없는 것을 테스트하는 것은 의미가 없습니다. 이런 식으로 이름 - 이름을 전혀 인식 할 수 있다면 눈에 보이십시오.
표 9-43시스템에서 정보를 추출하는 사설 토토을 나열합니다 카탈로그.
표 9-43. 시스템 카탈로그 정보 사설 토토
이름 | 반환 유형 | 설명 |
---|---|---|
format_type (type_oid, typemod) |
텍스트 | 데이터 유형의 SQL 이름 가져 오기 |
pg_get_constraintdef (제약 _OOD) |
텍스트 | 제약 조건의 정의 받기 |
pg_get_constraintdef (제약 조건, pretty_bool) |
텍스트 | 제약 조건의 정의 받기 |
pg_get_expr (expr_text, relation_oid) |
텍스트 | 표현식의 내부 형태를 디 컴파일합니다 그것의 모든 vars는 두 번째 매개 변수 |
pg_get_expr (expr_text, relation_oid, pretty_bool) |
텍스트 | 표현식의 내부 형태를 디 컴파일합니다 그것의 모든 vars는 두 번째 매개 변수 |
pg_get_indexdef (index_oid) |
텍스트 | get색인 생성명령 색인 |
pg_get_indexdef (index_oid, column_no, Pretty_bool) |
텍스트 | get색인 생성명령 index 또는 index index의 정의column_nois Zero |
PG_GET_RULEDEF (rule_oid) |
텍스트 | get규칙 만들기명령 규칙 |
PG_GET_RULEDEF (rule_oid, Pretty_bool) |
텍스트 | get규칙 만들기명령 규칙 |
PG_GET_SERIAL_SEATENCE (table_name, column_name) |
텍스트 | a 시퀀스 이름을 얻으십시오.Serial또는bigserial열 용도 |
PG_GET_TRIGGERDEF (trigger_oid) |
텍스트 | get만들기 [제약] 방아쇠트리거 명령 |
PG_GET_USERBYID (롤 리드) |
이름 | 주어진 ID로 역할 이름 가져 오기 |
pg_get_viewdef (View_Name) |
텍스트 | 기본selectView ( 명령감가 상각) |
pg_get_viewdef (View_Name, pretty_bool) |
텍스트 | 기본selectView ( 명령감가 상각) |
pg_get_viewdef (View_oid) |
텍스트 | 기본select보기를위한 명령 |
pg_get_viewdef (View_oid, pretty_bool) |
텍스트 | 기본select보기를위한 명령 |
PG_TABLESPACE_DATABASES (TableSpace_oid) |
OID 세트 | 테이블 스페이스 |
format_type
SQL 이름을 반환합니다
유형 OID 및 아마도
유형 수정 자. 구체적이없는 경우 유형 수정자를 위해 NULL을 전달하십시오
수정자는 알려져 있습니다.
pg_get_constraintdef
,
pg_get_indexdef
, PG_GET_RULEDEF
및pg_get_triggerdef
, 각각을 재구성합니다
제약, 인덱스, 규칙 또는 트리거에 대한 명령을 작성합니다. (메모
이것은 원본 텍스트가 아니라 혼란스러운 재구성이라는
명령의.)pg_get_expr
열의 기본값. 검사 할 때 유용 할 수 있습니다
시스템 카탈로그의 내용.pg_get_viewdef
재구성select보기를 정의하는 쿼리. 이들 대부분
함수는 두 가지 변형으로 제공되며 그 중 하나는 선택적으로"Pretty-Print"결과. 그만큼
매우 인쇄 된 형식은 더 읽기 쉬운 것이지만 기본 형식은 다음과 같습니다.
미래 버전의에 의해 같은 방식으로 해석 될 가능성이 더 높습니다.PostgreSQL; 사용하지 마십시오
덤프 목적으로 인쇄 된 출력. 통과false예쁜 인쇄 매개 변수는
매개 변수가없는 변형과 동일한 결과
모두.
PG_GET_SERIAL_SEATENCE
반환
열과 관련된 시퀀스의 이름 또는 null
시퀀스는 열과 관련이 있습니다. 첫 번째 입력 매개 변수
선택적 스키마가있는 테이블 이름이고 두 번째 매개 변수는
열 이름. 첫 번째 매개 변수는 잠재적으로 a
스키마와 테이블, 그것은 두 배로 인용되지 않습니다.
식별자는 기본적으로 낮은 기반으로, 두 번째는
열 이름 인 매개 변수는 이중 인용문으로 취급됩니다.
그리고 사건이 보존되었습니다. 함수는 값을 적절하게 반환합니다
시퀀스 함수로 전달하기 위해 형식화 (참조섹션 9.12). 이 협회는 할 수 있습니다
수정 또는 제거ALTER 시퀀스
소유자. (이 사설 토토은 아마도라고 불렀을 것입니다.pg_get_owned_sequence
; 그 이름
일반적으로와 함께 사용된다는 사실을 반영합니다.Serial또는bigserial열.)
PG_GET_USERBYID
추출 a
역할의 이름이 주어진 Oid.
PG_TABLESPACE_DATABASES
허용 a
검사 할 테이블 스페이스. Oids 세트를 반환합니다
객체가 테이블 스페이스에 저장된 데이터베이스. 이 경우
함수는 행을 반환하고 테이블 스페이스는 비어 있지 않으며
떨어집니다. 포기하는 특정 객체를 표시합니다
테이블 스페이스, 식별 된 데이터베이스에 연결해야합니다.
에 의해PG_TABLESPACE_DATABASES
및
쿼리pg_class카탈로그.
표 9-44이전에 저장된 주석 추출댓글명령. 널 값이 반환됩니다 지정된 것과 일치하는 의견을 찾을 수없는 경우 매개 변수.
표 9-44. 의견 정보 사설 토토
이름 | 반환 유형 | 설명 |
---|---|---|
col_description (table_oid, column_number) |
텍스트 | 테이블 열에 대한 주석 받기 |
obj_description (Object_oid, Catalog_name) |
텍스트 | 데이터베이스 개체에 대한 주석 받기 |
obj_description (Object_oid) |
텍스트 | 데이터베이스 개체에 대한 주석 받기 (감가 상각) |
shobj_description (Object_oid, Catalog_name) |
텍스트 | 공유 데이터베이스 개체에 대한 주석 받기 |
col_description
반환합니다
테이블 열에 대한 주석은
테이블 및 열 번호.obj_description
테이블에는 사용할 수 없습니다
열에는 자신의 OID가 없기 때문에 열에는 없습니다.
2 개의 파라미터 형태obj_description
주석을 반환합니다
OID와 이름으로 지정된 데이터베이스 개체
시스템 카탈로그가 포함되어 있습니다. 예를 들어,obj_description (123456, 'pg_class')검색합니다
OID 123456이있는 테이블에 대한 주석. 1 개의 파라미터 양식
의obj_description
만 필요합니다
물체의 OID. 보증이 없기 때문에 이제는 더 이상 사용되지 않습니다
이 OID는 다른 시스템 카탈로그에서 독특합니다. 그러므로,
잘못된 의견이 반환 될 수 있습니다.
shobj_description
만 사용됩니다
좋다obj_description
공유 객체에 대한 주석을 검색하는 데 사용됩니다. 일부 시스템
카탈로그는 각 클러스터 내의 모든 데이터베이스에 전 세계적이며
그들의 설명은 전 세계적으로 저장됩니다.