표 9-44세션과 시스템을 추출하는 몇 가지 토토 사이트을 보여줍니다 정보.
이 섹션에 나열된 토토 사이트 외에도 통계 시스템과 관련된 여러 토토 사이트 시스템 정보를 제공합니다. 보다섹션 26.2.2자세한 내용은
표 9-44. 세션 정보 토토 사이트
이름 | 반환 유형 | 설명 |
---|---|---|
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.3 : 역할 롤 토토. 또한 함수 실행 중에도 변경됩니다
속성보안 정의기. 유닉스에서
Parlance, 세션 사용자는입니다."실제
사용자"그리고 현재 사용자는입니다."효과적인 사용자".
참고 :
current_user
,session_user
및사용자
특별한 구문 상태가있어SQL: 호출해야합니다 괄호 후드없이.
current_schema
이름을 반환합니다
검색 경로의 앞쪽에있는 스키마 (또는 널
값 검색 경로가 비어있는 경우). 이것이 스키마입니다
생성 된 모든 테이블 또는 기타 지정된 개체에 사용됩니다.
대상 스키마를 지정하지 않고current_schemas (부울)
배열을 반환합니다
현재 검색 경로에서 모든 스키마의 이름. 그만큼
부울 옵션은 암시 적으로 포함되는지 여부를 결정합니다
와 같은 시스템 스키마PG_CATALOG검색 경로에 포함되어 있습니다.
참고 :검색 경로는 실행 시간에 변경 될 수 있습니다. 명령은 다음과 같습니다.
search_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-45사용자가 객체 액세스를 쿼리 할 수있는 함수를 나열합니다. 프로그래밍 방식으로 특권. 보다토토 베이 : 문서 : 8.3 : 권한특권에 대한 자세한 내용은
표 9-45. 액세스 권한 문의 토토 사이트
이름 | 반환 유형 | 설명 |
---|---|---|
has_database_privilege (사용자, 데이터베이스, 특권) |
부울 | 사용자는 데이터베이스에 대한 권한이 있습니까 |
has_database_privilege (데이터베이스, Privilege) |
부울 | 현재 사용자는 데이터베이스에 대한 권한이 있습니까 |
has_function_privilege (user, 토토 사이트, 특권) |
부울 | 사용자는 토토 사이트에 대한 특권이 있습니까 |
has_function_privilege (토토 사이트, 특권) |
부울 | 현재 사용자는 토토 사이트에 대한 특권이 있습니까 |
has_language_privilege (user, 언어, 특권) |
부울 | 사용자는 언어에 대한 특권이 있습니까 |
has_language_privilege (언어, 특권) |
부울 | 현재 사용자는 언어에 대한 특권이 있습니까 |
has_schema_privilege (사용자, 스키마,
특권) |
부울 | 사용자는 스키마에 대한 권한이 있습니까 |
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.3 : 객체 식별자 와이즈 토토). 원하는 액세스
권한 유형은를 평가해야합니다.execute.
예는 다음과 같습니다.
select has_function_privilege ( 'joeuser', 'myfunc (int, text)', 'execute');
has_language_privilege
확인
사용자가 특정에서 절차 언어에 액세스 할 수 있는지 여부
방법. 논쟁의 가능성은와 유사합니다.has_table_privilege
. 원하는
액세스 권한 유형은 평가해야합니다.usage.
has_schema_privilege
확인
사용자가 특정 방식으로 스키마에 액세스 할 수 있는지 여부 그만큼
그 주장에 대한 가능성은와 유사하다.has_table_privilege
. 원하는 액세스
권한 유형은를 평가해야합니다.생성또는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
. 원하는 액세스
권한 유형은를 평가해야합니다.Create.
PG_HAS_ROLE
a
사용자는 특정 방식으로 역할에 액세스 할 수 있습니다. 가능성
그것의 주장은와 유사하다.has_table_privilege
. 원하는 액세스
권한 유형은를 평가해야합니다.회원또는usage. 회원직간접 멤버십을 나타냅니다
역할 (즉, 할 권리세트
역할), whileusage역할의 특권은없이 즉시 제공됩니다
행위역할 설정.
사용자가 권한에 대한 보조금 옵션을 보유하고 있는지 테스트하려면 부록보조금 옵션특권 키 단어; 예를 들어'업데이트로 보조금 옵션 '.
표 9-46특정 객체가 있는지 여부를 결정하는 함수를 보여줍니다가시적현재 스키마 검색에서 길. 예를 들어, 테이블은 스키마를 포함하는 것은 검색 경로에 있으며 동일한 테이블이 없습니다. 이름은 검색 경로의 앞부분에서 나타납니다. 이것은 동일합니다 테이블이 이름으로 참조 할 수 있다는 진술은 명시 적 스키마 자격. 모든 가시적 인 이름을 나열합니다 테이블 :
pg_class에서 pg_table_is_visible (oid);에서 relname을 선택하십시오.
표 9-46. 스키마 가시성 문의 토토 사이트
이름 | 반환 유형 | 설명 |
---|---|---|
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_ts_config_is_visible (config_oid) |
부울 | 검색 중에 텍스트 검색 구성이 표시됩니다 길 |
pg_ts_dict_is_visible (dict_oid) |
부울 | 검색 경로에서 텍스트 검색 사전이 표시됩니다 |
pg_ts_parser_is_visible (parser_oid) |
부울 | 텍스트 검색 파서가 검색 경로에 표시됩니다 |
pg_ts_template_is_visible (template_oid) |
부울 | 텍스트 검색 템플릿이 검색 경로에 표시됩니다 |
pg_type_is_visible (type_oid) |
부울 | 검색 경로에서 볼 수있는 유형 (또는 도메인)입니다 |
각 함수는 한 유형의 가시성 검사를 수행합니다.
데이터베이스 개체. 참고pg_table_is_visible
와 함께 사용할 수 있습니다
보기, 색인 및 시퀀스;pg_type_is_visible
와 함께 사용할 수 있습니다
도메인. 토토 사이트 및 연산자의 경우 검색의 객체입니다
같은 이름의 객체가없는 경우 경로가 보입니다및 인수 데이터
유형경로 초반. 운영자 클래스의 경우 둘 다
이름 및 관련 인덱스 액세스 방법이 고려됩니다.
이 모든 함수는 객체를 식별하기 위해 객체 OID가 필요합니다. 확인하려면. 이름으로 객체를 테스트하고 싶다면 OID 별칭 유형을 사용하는 것이 편리합니다 (regclass, Regtype, 레지비어, Regoperator, RegConfig, 또는RegDictionary), 예 :
PG_TYPE_IS_VISIBE ( 'MySCHEMA.WIDGET':: regtype); 선택
자격이없는 것을 테스트하는 것은 의미가 없습니다. 이런 식으로 이름 - 이름을 전혀 인식 할 수 있다면 눈에 보이십시오.
표 9-47시스템에서 정보를 추출하는 토토 사이트을 나열합니다 카탈로그.
표 9-47. 시스템 카탈로그 정보 토토 사이트
이름 | 반환 유형 | 설명 |
---|---|---|
format_type (type_oid, typemod) |
텍스트 | 데이터 유형의 SQL 이름 가져 오기 |
pg_get_constraintdef (제약 _OOD) |
텍스트 | 제약 조건의 정의 받기 |
pg_get_constraintdef (제약 _OOD, 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_no| |
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; 사용하지 마십시오
덤프 목적으로 인쇄 된 출력. 통과거짓예쁜 인쇄 매개 변수는
매개 변수가없는 변형과 동일한 결과
모두.
PG_GET_SERIAL_SEATENCE
반환
열과 관련된 시퀀스의 이름 또는 null
시퀀스는 열과 관련이 있습니다. 첫 번째 입력 매개 변수
선택적 스키마가있는 테이블 이름이고 두 번째 매개 변수는
열 이름. 첫 번째 매개 변수는 잠재적으로 a
스키마와 테이블, 그것은 두 배로 인용되지 않습니다.
식별자는 기본적으로 낮은 기반으로, 두 번째는
열 이름 인 매개 변수는 이중 인용문으로 취급됩니다.
그리고 사건이 보존되었습니다. 함수는 값을 적절하게 반환합니다
시퀀스 함수로 전달하기 위해 형식화 (참조섹션 9.15). 이 협회는 할 수 있습니다
수정 또는 제거ALTER 시퀀스
소유자. (이 토토 사이트은 아마도라고 불렀을 것입니다.PG_GET_OWNED_SEATENCE
; 그 이름
일반적으로와 함께 사용된다는 사실을 반영합니다.Serial또는bigserial열.)
PG_GET_USERBYID
추출 a
역할의 이름이 주어진 Oid.
PG_TABLESPACE_DATABASES
허용 a
검사 할 테이블 스페이스. Oids 세트를 반환합니다
객체가 테이블 스페이스에 저장된 데이터베이스. 이 경우
함수는 행을 반환하고 테이블 스페이스는 비어 있지 않으며
떨어집니다. 포기하는 특정 객체를 표시합니다
테이블 스페이스, 식별 된 데이터베이스에 연결해야합니다.
에 의해PG_TABLESPACE_DATABASES
및
쿼리pg_class카탈로그.
표 9-48이전에 저장된 주석 추출댓글명령. 널 값이 반환됩니다 지정된 것과 일치하는 의견을 찾을 수없는 경우 매개 변수.
표 9-48. 의견 정보 토토 사이트
이름 | 반환 유형 | 설명 |
---|---|---|
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
공유 객체에 대한 주석을 검색하는 데 사용됩니다. 일부 시스템
카탈로그는 각 클러스터 내의 모든 데이터베이스에 전 세계적이며
그들의 설명은 전 세계적으로 저장됩니다.
표 9-49서버 내부 트랜잭션 정보를 사용자 수준으로 내보내십시오. 그만큼 이러한 토토 사이트의 주요 사용은 어떤 트랜잭션을 결정하는 것입니다. 두 개의 스냅 샷 사이에 커밋되었습니다.
표 9-49. 트랜잭션 ID 및 스냅 샷
이름 | 반환 유형 | 설명 |
---|---|---|
TXID_CURRENT () |
bigint | 현재 거래 ID 받기 |
TXID_CURRENT_SNAPSHOT () |
TXID_SNAPSHOT | 현재 스냅 샷 가져 오기 |
TXID_SNAPSHOT_XMIN (TXID_SNAPSHOT) |
bigint | 스냅 샷의 Xmin get |
TXID_SNAPSHOT_XMAX (TXID_SNAPSHOT) |
bigint | 스냅 샷의 Xmax 받기 |
TXID_SNAPSHOT_XIP (TXID_SNAPSHOT) |
bigint 세트 | Snapshot에서 진행중인 트랜잭션 ID 받기 |
txid_visible_in_snapshot (bigint, TXID_SNAPSHOT) |
부울 | 스냅 샷에 트랜잭션 ID가 표시됩니까? |
내부 트랜잭션 ID 유형 (xid) 너비가 32 비트이므로 40 억마다 감탄합니다. 업무. 그러나 이러한 토토 사이트은 64 비트 형식을 내 보냅니다 그것은로 확장됩니다."Epoch"카운터는 설치. 이러한 토토 사이트에 사용되는 데이터 유형TXID_SNAPSHOT, 거래에 대한 정보를 저장합니다 특정 순간에 ID 가시성. 그 구성 요소입니다 설명테이블 9-50.
표 9-50. 스냅 샷 구성 요소
이름 | 설명 |
---|---|
xmin | 여전히 활성화 된 최초의 트랜잭션 ID (TXID). 모든 초기 트랜잭션이 커밋되고 눈에 보이거나 롤백 및 죽음. |
xmax | 첫 번째로 조정되지 않은 TXID. 모든 TXID가 나중에 이것은 아직 시작되지 않았습니다. 스냅 샷, 따라서 보이지 않습니다. |
xip_list | 스냅 샷 시점에 활성 TXIDS. 그들 모두 사이에xmin및xmax. TXIDxmin <= txid <xmax스냅 샷 시점에 목록이 이미 완료되었으며 따라서 커밋에 따라 눈에 보이거나 죽었습니다. 상태. |
TXID_SNAPSHOT의 텍스트 표현 이다xmin:xmax:xip_list. 예를 들어10:20:10,14,15평균xmin = 10, xmax = 20, xip_list = 10, 14, 15.