이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.19. 시스템 정보 기능

표 9-39세션과 시스템을 추출하는 여러 함수를 보여줍니다. 정보.

표 9-39. 세션 정보 기능

이름 반환 유형 설명
현재_데이터베이스() 이름 현재 데이터베이스 이름
current_schema() 이름 현재 스키마 이름
current_schemas(부울) 이름[] 선택적으로 다음을 포함하는 검색 경로의 스키마 이름 암시적 스키마
현재_사용자 이름 현재 실행 컨텍스트의 사용자 이름
inet_client_addr() inet 원격 연결 주소
inet_client_port() int 원격 연결 포트
inet_server_addr() inet 로컬 연결 주소
inet_server_port() int 로컬 연결 포트
session_user 이름 세션 사용자 이름
pg_postmaster_start_time() 시간대가 포함된 타임스탬프 우체국장시작 시간
사용자 이름 다음과 동일함현재_사용자
버전() 텍스트 PostgreSQL버전 정보

session_user일반적으로 현재 데이터베이스 연결을 시작한 사용자입니다. 하지만 슈퍼유저는 다음을 사용하여 이 설정을 변경할 수 있습니다.세션 설정 승인.현재_사용자권한에 적용할 수 있는 사용자 식별자입니다. 확인 중입니다. 일반적으로 세션 사용자와 동일하지만 로 변경되다PostgreSQL : 문서 : 8.1 : 역할 스포츠 토토 사이트. 또한 다음과 같은 기능을 실행하는 동안에도 변경됩니다. 속성보안 정의자. 유닉스에서는 즉, 세션 사용자는"진짜 사용자"현재 사용자는"유효 사용자".

참고: 현재_사용자, session_user사용자다음에 특별한 구문 상태가 있습니다SQL: 호출해야 합니다. 후행 괄호 없이.

current_schema이름을 반환합니다. 검색 경로 앞에 있는 스키마(또는 null 검색 경로가 비어 있는 경우 값). 이는 스키마입니다. 생성된 모든 테이블이나 기타 명명된 개체에 사용됩니다. 대상 스키마를 지정하지 않고.current_schemas(boolean)배열을 반환합니다. 현재 검색 경로에 있는 모든 스키마의 이름입니다. 는 부울 옵션은 암시적으로 포함되는지 여부를 결정합니다. 다음과 같은 시스템 스키마pg_catalog있습니다 반환된 검색 경로에 포함됩니다.

참고:검색 경로는 런타임에 변경될 수 있습니다. 명령은 다음과 같습니다:

검색_경로를 다음으로 설정스키마 [, 스키마, ...]

inet_client_addrIP를 반환합니다. 현재 클라이언트의 주소 및inet_client_port포트 번호를 반환합니다.inet_server_addrIP를 반환합니다. 서버가 현재 연결을 수락한 주소 및inet_server_port포트를 반환합니다. 번호. 현재 연결이 끊어진 경우 이 모든 함수는 NULL을 반환합니다. Unix 도메인 소켓을 통해 이루어집니다.

pg_postmaster_start_time반환시간대가 포함된 타임스탬프우체국장시작했습니다.

버전문자열을 반환합니다. 설명하는PostgreSQL서버 버전.

표 9-40사용자가 객체 액세스를 쿼리할 수 있는 함수를 나열합니다. 프로그래밍 방식으로 권한을 부여합니다. 참조와이즈 토토 : 문서 : 8.1 : 권한권한에 대한 자세한 내용을 확인하세요.

표 9-40. 접근 권한 문의 기능

이름 반환 유형 설명
has_table_privilege(사용자, 테이블, 권한) 부울 사용자에게 테이블에 대한 권한이 있습니까
has_table_privilege(테이블, 특권) 부울 현재 사용자가 테이블에 대한 권한을 가지고 있습니까
has_database_privilege(사용자, 데이터베이스, 특권) 부울 사용자에게 데이터베이스에 대한 권한이 있습니까
has_database_privilege(데이터베이스, 권한) 부울 현재 사용자에게 데이터베이스에 대한 권한이 있습니까
has_function_privilege(사용자, 함수, 권한) 부울 사용자에게 기능에 대한 권한이 있습니까
has_function_privilege(함수, 특권) 부울 현재 사용자에게 기능에 대한 권한이 있습니까
has_lang_privilege(사용자, 언어, 권한) 부울 사용자에게 언어에 대한 권한이 있습니까
has_언어_권한(언어, 권한) 부울 현재 사용자는 언어에 대한 권한을 가지고 있습니까
pg_has_role(사용자, 역할, 특권) 부울 사용자에게 역할에 대한 권한이 있습니까
pg_has_role(역할, 권한) 부울 현재 사용자에게 역할에 대한 권한이 있습니까
has_schema_privilege(사용자, 스키마, 권한) 부울 사용자에게 스키마에 대한 권한이 있습니까
has_schema_privilege(스키마, 특권) 부울 현재 사용자에게 스키마에 대한 권한이 있습니까
has_tablespace_privilege(사용자, 테이블스페이스, 특권) 부울 사용자에게 테이블스페이스에 대한 권한이 있습니까
has_tablespace_privilege(테이블스페이스, 권한) 부울 현재 사용자가 테이블스페이스에 대한 권한을 가지고 있습니까

has_table_privilege체크 사용자가 특정 방식으로 테이블에 액세스할 수 있는지 여부. 사용자 이름이나 OID로 지정할 수 있습니다(pg_authid.oid), 또는 인수가 생략된 경우현재_사용자가정됩니다. 테이블 이름이나 OID로 지정할 수 있습니다. (따라서 실제로는 6개가 있습니다. 의 변형has_table_privilege, 개수와 종류로 구분할 수 있습니다. 인수.) 이름으로 지정할 때 이름은 다음과 같습니다. 필요한 경우 스키마 한정. 원하는 접근 권한 유형 다음 중 하나로 평가되어야 하는 텍스트 문자열로 지정됩니다. 값선택, 삽입, 업데이트, 삭제, RULE, 참조, 또는트리거. (문자열의 대/소문자는 중요하지 않습니다. 그러나.) 예는 다음과 같습니다:

SELECT has_table_privilege('myschema.mytable', 'select');

has_database_privilege체크 사용자가 특정 방식으로 데이터베이스에 액세스할 수 있는지 여부. 는 그 주장에 대한 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.생성, 임시또는온도(동등함임시).

has_function_privilege체크 사용자가 특정 방식으로 기능에 액세스할 수 있는지 여부. 는 그 주장에 대한 가능성은 다음과 유사합니다.has_table_privilege. 기능을 지정할 때 OID가 아닌 텍스트 문자열을 사용하는 경우 허용되는 입력은 다음과 같습니다. 와 동일regprocedure데이터 유형(참조PostgreSQL : 문서 : 8.1 : 객체 식별자 배트맨 토토). 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.실행. 예는 다음과 같습니다:

SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');

has_lang_privilege체크 사용자가 특정 프로세스의 절차적 언어에 액세스할 수 있는지 여부 방법. 그 주장에 대한 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.사용.

pg_has_role다음 여부를 확인합니다. 사용자는 특정 방식으로 역할에 액세스할 수 있습니다. 가능성 그 주장은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.회원또는사용. 회원직접 또는 간접 회원임을 나타냅니다. 역할(즉, 할 수 있는 권리)세트 역할), 반면사용법여부를 나타냅니다. 역할의 권한은 별도의 조치 없이 즉시 사용 가능합니다. 하는 중역할 설정.

has_schema_privilege체크 사용자가 특정 방식으로 스키마에 액세스할 수 있는지 여부. 는 그 주장에 대한 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.생성또는사용.

has_tablespace_privilege체크 사용자가 특정 방식으로 테이블스페이스에 액세스할 수 있는지 여부. 는 그 주장에 대한 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.생성.

사용자가 권한에 대한 부여 옵션을 보유하고 있는지 테스트하려면, 추가부여 옵션 포함에 특권 키워드; 예를 들어'다음으로 업데이트 부여 옵션'.

표 9-41특정 개체가 다음과 같은지 여부를 결정하는 함수를 보여줍니다.표시현재 스키마 검색에서 경로. 포함된 스키마가 다음과 같은 경우 테이블이 표시된다고 합니다. 검색 경로에 동일한 이름의 테이블이 이전에 나타나지 않습니다. 검색 경로에서. 이는 다음과 같은 진술과 동일하다. 명시적인 스키마 없이 이름으로 테이블을 참조할 수 있음 자격. 예를 들어, 보이는 모든 항목의 이름을 나열하려면 테이블:

pg_class WHERE pg_table_is_visible(oid)에서 relname 선택;

표 9-41. 스키마 가시성 조회 기능

이름 반환 유형 설명
pg_table_is_visible(table_oid) 부울 검색 경로에 테이블이 표시됩니다.
pg_type_is_visible(type_oid) 부울 검색 경로에 유형(또는 도메인)이 표시됩니다.
pg_function_is_visible(function_oid) 부울 검색 경로에 기능이 표시됩니다.
pg_operator_is_visible(operator_oid) 부울 검색 경로에 연산자가 표시됩니다.
pg_opclass_is_visible(opclass_oid) 부울 검색 경로에 연산자 클래스가 표시됩니다.
pg_conversion_is_visible(conversion_oid) 부울 검색 경로에 전환이 표시됩니다.

pg_table_is_visible수행하는 테이블(또는 뷰 또는 기타 모든 종류의)을 확인하세요.pg_class항목).pg_type_is_visible, pg_function_is_visible, pg_operator_is_visible, pg_opclass_is_visiblepg_conversion_is_visible같은 정렬을 수행합니다 유형(및 도메인), 기능에 대한 가시성 확인, 각각 연산자, 연산자 클래스 및 변환입니다. 에 대한 함수 및 연산자, 검색 경로의 개체가 표시됩니다. 같은 이름의 객체가 없는 경우및 인수 데이터 유형이전 경로에서. 연산자 클래스의 경우 이름과 관련 인덱스 모두 액세스 방법이 고려됩니다.

이 모든 기능에는 개체를 식별하기 위해 개체 OID가 필요합니다. 확인해야합니다. 이름으로 개체를 테스트하려면 다음을 수행하십시오. OID 별칭 유형을 사용하는 것이 편리합니다(regclass, regtype, regprocedure또는regoperator), 예를 들어

SELECT pg_type_is_visible('myschema.widget'::regtype);

자격이 없는 것을 테스트하는 것은 별 의미가 없다는 점에 유의하십시오. 이런 방식으로 이름을 지정합니다. 이름을 전혀 인식할 수 없으면 눈에 띄도록 하세요.

표 9-42시스템에서 정보를 추출하는 함수를 나열합니다. 카탈로그.

표 9-42. 시스템 카탈로그 정보 기능

이름 반환 유형 설명
형식_유형(type_oid, typemod) 텍스트 데이터 유형의 SQL 이름 가져오기
pg_get_constraintdef(constraint_oid) 텍스트 제약조건 정의 가져오기
pg_get_constraintdef(constraint_oid, pretty_bool) 텍스트 제약조건 정의 가져오기
pg_get_expr(expr_text, relation_oid) 텍스트 다음을 가정하여 표현식의 내부 형식을 디컴파일합니다. 그 안에 있는 모든 Var는 다음과 같이 표시된 관계를 참조합니다. 두 번째 매개변수
pg_get_expr(expr_text, relation_oid, pretty_bool) 텍스트 다음을 가정하여 표현식의 내부 형식을 디컴파일합니다. 그 안에 있는 모든 Var는 다음과 같이 표시된 관계를 참조합니다. 두 번째 매개변수
pg_get_indexdef(index_oid) 텍스트 얻기색인 생성명령 색인
pg_get_indexdef(index_oid, column_no, pretty_bool) 텍스트 얻기색인 생성명령 인덱스 또는 단 하나의 인덱스 열 정의column_no0이 아닙니다
pg_get_ruledef(rule_oid) 텍스트 얻기규칙 생성명령 규칙
pg_get_ruledef(rule_oid, pretty_bool) 텍스트 얻기규칙 생성명령 규칙
pg_get_serial_sequence(테이블_이름, 열_이름) 텍스트 a 시퀀스의 이름을 가져옵니다.연재또는큰 직렬열 사용
pg_tablespace_databases(tablespace_oid) oid 세트 객체가 있는 데이터베이스 OID 세트를 가져옵니다. 테이블스페이스
pg_get_triggerdef(trigger_oid) 텍스트 얻기생성 [ 제약 ] 트리거트리거 명령
pg_get_userbyid(롤로이드) 이름 주어진 ID를 가진 역할 이름 가져오기
pg_get_viewdef(view_name) 텍스트 기본 가져오기선택보기 명령(지원 중단됨)
pg_get_viewdef(view_name, pretty_bool) 텍스트 기본 가져오기선택보기 명령(지원 중단됨)
pg_get_viewdef(view_oid) 텍스트 기본 가져오기선택보기 명령
pg_get_viewdef(view_oid, pretty_bool) 텍스트 기본 가져오기선택보기 명령

형식_유형SQL 이름을 반환합니다. OID 유형으로 식별되는 데이터 유형 유형 수정자. 특정 항목이 없으면 유형 수정자에 대해 NULL을 전달합니다. 수식어가 알려져 있습니다.

pg_get_constraintdef, pg_get_indexdef, pg_get_ruledefpg_get_triggerdef, 각각 재구성 제약 조건, 인덱스, 규칙 또는 트리거에 대한 명령을 생성합니다. (참고 이것은 원본 텍스트가 아닌 디컴파일된 재구성입니다. 명령의.)pg_get_expr개별 표현식의 내부 형식을 디컴파일합니다. 열의 기본값입니다. 검진할 때 유용할 것 같아요 토토 사이트 카탈로그의 내용.pg_get_viewdef재구성선택뷰를 정의하는 쿼리입니다. 이들 중 대부분은 함수에는 두 가지 변형이 있으며 그 중 하나는 선택적으로 가능합니다."예쁜 인쇄"결과입니다. 는 예쁘게 인쇄된 형식이 더 읽기 쉽지만 기본 형식은 다음과 같습니다. 향후 버전에서도 같은 방식으로 해석될 가능성이 더 높습니다.포스트그레SQL; 사용을 피하세요 덤프 목적으로 예쁘게 인쇄된 출력물입니다. 합격거짓pretty-print 매개변수의 경우 매개변수가 없는 변형과 동일한 결과 모두.

pg_get_serial_sequence가져오기 a와 연관된 시퀀스의 이름연재또는큰 직렬열. 는 이름은 시퀀스 함수에 전달하기에 적합한 형식입니다. (참조PostgreSQL : 문서 : 8.1 : 토토 커뮤니티 조작 함수). NULL은 열에 연결된 시퀀스가 없으면 반환됩니다.

pg_tablespace_databases허용합니다 검사할 테이블스페이스입니다. 다음의 OID 세트를 반환합니다. 테이블스페이스에 객체가 저장된 데이터베이스. 만약 이 함수는 모든 행을 반환하지만 테이블스페이스는 비어 있지 않으며 사용할 수 없습니다. 떨어집니다. 해당 개체를 채우는 특정 개체를 표시하려면 테이블스페이스를 사용하려면 식별된 데이터베이스에 연결해야 합니다. 으로pg_tablespace_databases그리고 쿼리해 보세요pg_class카탈로그.

pg_get_userbyid추출 OID가 부여된 역할 이름입니다.

다음에 표시된 기능표 9-43이전에 저장된 주석을 추출합니다.댓글명령. 없으면 null 값이 반환됩니다. 지정된 매개변수와 일치하는 댓글을 찾을 수 있습니다.

표 9-43. 댓글 정보 기능

이름 반환 유형 설명
obj_description(object_oid, 카탈로그_이름) 텍스트 데이터베이스 개체에 대한 설명 가져오기
obj_description(object_oid) 텍스트 데이터베이스 개체에 대한 설명 가져오기(지원 중단됨)
col_description(table_oid, 열_번호) 텍스트 테이블 열에 대한 설명 가져오기

2개의 매개변수 형식obj_description다음에 대한 댓글을 반환합니다. OID와 이름으로 지정된 데이터베이스 객체 시스템 카탈로그가 포함되어 있습니다. 예를 들어,obj_description(123456,'pg_class')검색하겠습니다 OID가 123456인 테이블에 대한 설명입니다. 단일 매개변수 형식 의obj_description만 필요합니다. 객체 OID. 이제 보장이 없으므로 더 이상 사용되지 않습니다. OID는 다양한 시스템 카탈로그에서 고유합니다. 그러므로, 잘못된 댓글이 반환될 수 있습니다.

col_description반환 OID로 지정된 테이블 열에 대한 설명 테이블과 해당 열 번호입니다.obj_description테이블에는 사용할 수 없습니다. 열에는 자체 OID가 없기 때문입니다.