¾�ΥС�������ʸ�� �� 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

9.19. �����ƥ����ؿ�

ɽ9-39�ˡ����å����䥷���ƥ�ξ������Ф���ؿ��򼨤��ޤ���

ɽ 9-39. ���å�������ؿ�

̾������ͤη�����
current_database()name���ߤΥǡ����١�����̾��
current_schema()name���ߤΥ������ޤ�̾��
current_schemas(boolean)name[]�����ѥ���Υ������ޤ�̾�������ץ����ǰ���Ū�ʥ������ޤ�ޤ�
current_username���ߤμ¹ԥ���ƥ����ȤΥ桼��̾��
inet_client_addr()inet��⡼����³�Υ��ɥ쥹��
inet_client_port()int4��⡼����³�Υݡ��ȡ�
inet_server_addr()inet����������³�Υ��ɥ쥹��
inet_server_port()int4����������³�Υݡ��ȡ�
session_username���å����桼��̾��
usernamecurrent_user��������
version()textPostgreSQL ����������

session_user�ϡ��̾���ߤΥǡ����١�����³�����������桼���Ǥ��� �������������ѡ��桼���Ϥ����SET SESSION AUTHORIZATION����Ѥ����ѹ����뤳�Ȥ��Ǥ��ޤ��� current_user�ϡ����¤θ�����Ŭ�Ѥ����桼�����̻ҤǤ��� �̾�ϥ��å����桼����Ʊ���Ǥ�����SECURITY DEFINER°������Ĵؿ��μ¹���ϰۤʤ�ޤ��� Unix�Ѹ�Ǥ����ȡ����å����桼����"�¥桼��"�����ߤΥ桼����"�¸��桼��"�Ǥ���

����: current_user��session_user�����user��SQL�ˤ������ü�ʾ��֤���äƤ��ꡢ��̤�Ĥ����˸ƤӽФ��ʤ���Фʤ�ޤ���

current_schema�ؿ��ϡ������ѥ�����Ƭ�ˤ��륹������̾(�⤷���ϡ������ѥ������ξ���NULL��)���֤��ޤ��� ����ϡ��оݥ������ޤ���ꤻ���˺������줿��Ǥ�դΥơ��֥�ޤ���¾��̾���դ����֥������Ȥ˻��Ѥ���륹�����ޤǤ��� �ޤ���current_schemas(boolean) �ϡ������ѥ���¸�ߤ������ƤΥ�������̾��������֤��ޤ��� boolean���ץ����ˤ�ꡢpg_catalog�Τ褦�ʰ���Ū�˴ޤޤ�Ƥ��륷���ƥॹ�����ޤ򡢸����ѥ��˴ޤ���֤����ɤ�������ꤷ�ޤ���

����: �����ѥ��ϡ��¹Ի���������ѹ����뤳�Ȥ��Ǥ��ޤ��� ���Ѥ��륳�ޥ�ɤϰʲ����̤�Ǥ���

SET search_path TO schema [, schema, ...]

inet_client_addr�ϸ��ߤΥ��饤����Ȥ�IP���ɥ쥹���֤���inet_client_port�Ϥ��Υݡ����ֹ���֤��ޤ��� inet_server_addr�ϡ����ߤ���³������դ��������Ф�IP���ɥ쥹���֤���inet_server_port�Ϥ��Υݡ����ֹ���֤��ޤ��� ���ߤ���³��Unix�ɥᥤ�󥽥��åȷ�ͳ�ξ�硢�����δؿ�������NULL���֤��ޤ���

version()�ؿ���PostgreSQL�����ФΥС������򵭽Ҥ���ʸ������֤��ޤ���

ɽ9-40����󤷤��ؿ�����Ѥ��ơ��桼���ϥ��֥������ȤΥ����������¤�ץ�����फ���䤤��碌�뤳�Ȥ��Ǥ��ޤ��� ���¤ˤĤ��Ƥξܺ٤ϡ���5.7�򻲾Ȥ��Ƥ���������

ɽ 9-40. �����������¾Ȳ�ؿ�

̾������ͷ�����
has_table_privilege(user, table, privilege) boolean�ơ��֥�˥桼���Υ����������¤�����Τ�
has_table_privilege(table, privilege) boolean�ơ��֥�˸��ߤΥ桼���Υ����������¤�����Τ�
has_database_privilege(user, database, privilege) boolean�桼���˥ǡ����١����ؤΥ����������¤�����Τ�
has_database_privilege(database, privilege) boolean���ߤΥ桼���˥ǡ����١����ؤΥ����������¤�����Τ�
has_function_privilege(user, function, privilege) boolean�桼���˴ؿ��ؤΥ����������¤�����Τ�
has_function_privilege(function, privilege) boolean���ߤΥ桼���˴ؿ��ؤΥ����������¤�����Τ�
has_language_privilege(user, language, privilege) boolean�桼���˸���ؤΥ����������¤�����Τ�
has_language_privilege(language, privilege) boolean���ߤΥ桼���˸���ؤΥ����������¤�����Τ�
has_schema_privilege(user, schema, privilege) boolean�桼���˥������ޤؤΥ����������¤�����Τ�
has_schema_privilege(schema, privilege) boolean���ߤΥ桼���˥������ޤؤΥ����������¤�����Τ�
has_tablespace_privilege(user, tablespace, privilege) boolean�桼���˥ơ��֥���֤ؤΥ����������¤�����Τ�
has_tablespace_privilege(tablespace, privilege) boolean���ߤΥ桼���˥ơ��֥���֤ؤΥ����������¤�����Τ�

has_table_privilege�ؿ��ϡ�����桼�����������ˡ�ǥơ��֥�˥���������ǽ���ɤ����򸡺����ޤ��� �桼����̾���ޤ���ID(pg_user.usesysid)�ˤ�ä����ꤵ��ޤ��� �⤷��������ά������current_user�ȸ�������ޤ��� �ơ��֥��̾���ޤ���OID�ˤ�ä�����Ǥ��ޤ��� (���äơ��º�has_table_privilege�ˤ�6�Ĥμ��ब¸�ߤ������줾��ΰ����ο��ȷ��ˤ�äƸ�ʬ�����ޤ���) ̾���ǻ��ꤵ�줿��硢ɬ�פǤ���С�����̾���򥹥����ޤǽ������뤳�Ȥ���ǽ�Ǥ��� �оݤȤ��륢���������¤μ���ϥƥ�����ʸ����ǻ��ꤵ�졢SELECT��INSERT��UPDATE��DELETE��RULE��REFERENCES���ޤ���TRIGGER����ΰ�Ĥ��ͤ�ɾ������ʤ���Фʤ�ޤ��� (��������ʸ�������ʸ����ʸ���ΰ㤤�ϰ�̣������ޤ���) �ʲ�����򼨤��ޤ���

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

has_database_privilege�ؿ��ϡ�����桼�����������ˡ�ǥǡ����١����˥���������ǽ���ɤ����򸡺����ޤ��� ���δؿ��Ǥΰ����λ�����ˡ�ϡ�has_table_privilege��������Ƥ��ޤ��� �оݤȤ��륢���������¤μ���ϡ�CREATE��TEMPORARY���ޤ��� TEMP(TEMPORARY��Ʊ��)��ɾ������ɬ�פ�����ޤ���

has_function_privilege�ؿ��ϡ�����桼�����������ˡ�Ǵؿ��˥���������ǽ���ɤ����򸡺����ޤ��� ���δؿ��Ǥΰ����λ�����ˡ�ϡ�has_table_privilege��������Ƥ��ޤ��� �ؿ���OID�ǤϤʤ��ƥ�����ʸ����ǻ��ꤷ����硢regprocedure �ǡ�����(��8.12����)��Ʊ�����Ϥ���ǽ�Ǥ��� �оݤȤ��륢���������¤μ���ϡ�����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_tablespace_privilege�ؿ��ϡ�����桼�����������ˡ�ǥơ��֥���֤˥���������ǽ���ɤ����򸡺����ޤ��� ���δؿ��Ǥΰ����λ�����ˡ�ϡ�has_table_privilege��������Ƥ��ޤ��� �оݤȤ��륢���������¤μ���ϡ�CREATE��ɾ������ɬ�פ�����ޤ���

�桼�������θ��¤Υ����ȥ��ץ������ݻ����Ƥ��뤫�ɤ������ǧ���뤿��ˤϡ����¥�����ɤ� WITH GRANT OPTION���դ��Ƥ��������� �㤨�С�'UPDATE WITH GRANT OPTION'�Ǥ���

ɽ9-41�ˡ�����Υ��֥������Ȥ������ԥ������ޤθ����ѥ��ˤ������Ļ����ɤ�����Ƚ�̤���ؿ��򼨤��ޤ��� ����ơ��֥��ޤॹ�����ޤ������ѥ����¸�ߤ��������ѥ����������Ʊ��̾���Υơ��֥뤬�ʤ���硢���Υơ��֥�ϲĻ�Ǥ���ȸ����ޤ��� �Ĥޤꡢ����ϡ��ơ��֥뤬����Ū�ʥ������޽����ʤ���̾���ˤ�äƻ��Ȳ�ǽ�Ǥ���Ȥ������ȤǤ��� �㤨�С����Τ褦�ˤ��ơ����ƤβĻ�ơ��֥��̾��������ǽ�Ǥ���

SELECT relname FROM pg_class WHERE pg_table_is_visible(oid);

ɽ 9-41. �������޲Ļ����Ȳ�ؿ�

̾������ͷ�����
pg_table_is_visible(table_oid) boolean�ơ��֥뤬�����ѥ��ˤ����ƲĻ�Ǥ���Τ�
pg_type_is_visible(type_oid) boolean�ǡ�����(�ޤ��ϥɥᥤ��)�������ѥ��ˤ����ƲĻ�Ǥ���Τ�
pg_function_is_visible(function_oid) boolean�ؿ��������ѥ��ˤ����ƲĻ�Ǥ���Τ�
pg_operator_is_visible(operator_oid) boolean�黻�Ҥ������ѥ��ˤ����ƲĻ�Ǥ���Τ�
pg_opclass_is_visible(opclass_oid) boolean�黻�ҥ��饹�������ѥ��ˤ����ƲĻ�Ǥ���Τ�
pg_conversion_is_visible(conversion_oid) boolean�Ѵ��������ѥ��ˤ����ƲĻ�Ǥ���Τ�

pg_table_is_visible�ؿ��ˤ�ꡢ�ơ��֥�(�⤷���ϥӥ塼���⤷����¾��pg_class����ȥ�μ�������)���Ф��븡����Ԥʤ��ޤ��� pg_type_is_visible��pg_function_is_visible��pg_operator_is_visible��pg_opclass_is_visible�����pg_conversion_is_visible�ؿ��ˤ�ꡢ���줾��ǡ�����(����ӥɥᥤ��)���ؿ����黻�ҡ��黻�ҥ��饹������ӡ��Ѵ����Ф���Ʊ�ͤβĻ���������Ԥʤ��ޤ��� �ؿ�����ӱ黻�Ҥξ�硢�����ѥ��Τ�������βս�ˡ�Ʊ��̾������Ӱ����ǡ������Υ��֥������Ȥ��ʤ���С����Υѥ���ǥ��֥������ȤϲĻ�Ǥ��� �黻�ҥ��饹�ξ�硢̾������Ӵ�Ϣ�դ����Ƥ��륤��ǥå������������᥽�åɤ�ξ������θ����ޤ���

�����δؿ������ơ��������륪�֥������Ȥ��̤��뤿��ˡ����֥������Ȥ�OID��ɬ�פȤ��ޤ��� ���֥������Ȥ�̾���ǥƥ��Ȥ����硢OID��̾��(regclass��regtype��regprocedure���ޤ��� regoperator)����Ѥ���������Ǥ��� �㤨�С��ʲ��Τ褦�ˤ��ޤ���

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

�����������Τ褦�˽�������Ƥ��ʤ�̾����ƥ��Ȥ��Ƥ⡢���ޤ��̣���ʤ����Ȥ����դ��Ƥ��������� ̾����ǧ�������С������ɬ���Ļ�Ȥ������Ȥˤʤ�ޤ���

ɽ9-42�ˡ������ƥ५����������������Ф���ؿ�����󤷤ޤ���

ɽ 9-42. �����ƥ५����������ؿ�

̾������ͷ�����
format_type(type_oid, typemod)text�ǡ�������SQL̾�μ���
pg_get_viewdef(view_name)text�ӥ塼��CREATE VIEW���ޥ�ɤμ���(�ѻ�ͽ��)
pg_get_viewdef(view_name, pretty_bool)text�ӥ塼��CREATE VIEW���ޥ�ɤμ���(�ѻ�ͽ��)
pg_get_viewdef(view_oid)text�ӥ塼��CREATE VIEW���ޥ�ɤμ���
pg_get_viewdef(view_oid, pretty_bool)text�ӥ塼��CREATE VIEW���ޥ�ɤμ���
pg_get_ruledef(rule_oid)text�롼���CREATE RULE���ޥ�ɤμ���
pg_get_ruledef(rule_oid, pretty_bool)text�롼���CREATE RULE���ޥ�ɤμ���
pg_get_indexdef(index_oid)text����ǥå�����CREATE INDEX���ޥ�ɤμ���
pg_get_indexdef(index_oid, column_no, pretty_bool)text����ǥå�����CREATE INDEX���ޥ�ɤμ����� ���뤤��column_no���󥼥��ξ��ϡ�1�ĤΥ���ǥå�����Τߤ�����μ���
pg_get_triggerdef(trigger_oid)text�ȥꥬ��CREATE [ CONSTRAINT ] TRIGGER���ޥ�ɤμ���
pg_get_constraintdef(constraint_oid)text����������
pg_get_constraintdef(constraint_oid, pretty_bool)text����������
pg_get_expr(expr_text, relation_oid)text�������������εե���ѥ��롣 ������ѿ�������ѥ�᡼���Ǽ����줿��졼�����򻲾Ȥ��Ƥ����ΤȲ��ꡣ
pg_get_expr(expr_text, relation_oid, pretty_bool)text�������������εե���ѥ��롣 ������ѿ�������ѥ�᡼���Ǽ����줿��졼�����򻲾Ȥ��Ƥ����ΤȲ��ꡣ
pg_get_userbyid(userid)nameͿ����줿ID����ĥ桼��̾�����
pg_get_serial_sequence(table_name, column_name)textserial�⤷����bigserial�󤬻��Ѥ��륷������̾�����
pg_tablespace_databases(tablespace_oid)setof oid�ơ��֥������˥��֥������Ȥ���ĥǡ����١�����OID�������

format_type�Ϸ���OID�Ȥ⤷����з������ҤǼ��̤����ǡ�������SQL̾���֤��ޤ��� ����ν����Ҥ������Ǥ���С����η������Ҥ�NULL���Ϥ��Ƥ���������

pg_get_viewdef��pg_get_ruledef��pg_get_indexdef��pg_get_triggerdef�������pg_get_constraintdef�ؿ��Ϥ��줾�졢�ӥ塼���롼�롢����ǥå������ȥꥬ�����뤤������κ������ޥ�ɤ�ƹ��ۤ��ޤ��� (����ϡ��ե���ѥ���ˤ��ƹ��ۤǤ��äơ����Υ��ޥ�ɥƥ����ȤǤʤ����Ȥ����դ��Ƥ���������) pg_get_expr�ϡ���Υǥե�����ͤʤɸġ��μ�������������ե���ѥ��뤷�ޤ��� �����ƥ५�����������Ƥ��ǧ����������Ω�Ĥ��⤷��ޤ��� �����ΤۤȤ�ɤ�2�Ĥμ��������ޤ��� ��1�Ĥϥ��ץ����Ƿ�̤�"���פ�ɽ��"���뤳�Ȥ��Ǥ��ޤ��� ���פ�ɽ������񼰤Ǥϡ�����������ޤ�ޤ������ǥե���Ȥν񼰤���������ΥС�������PostgreSQL�Ǥ�Ʊ�ͤ˲�᤹�뤳�Ȥ��Ǥ������Ǥ��� ����פ���Ū�Ȥ�����ϡ����פ�ɽ��������Ϥ���Ѥ��ʤ��Ǥ��������� ���פ�ɽ���ѤΥѥ�᡼����false���Ϥ����Ȥǡ����Υѥ�᡼�������������ʤ�����η�̤�Ʊ��η�̤��������ޤ���

pg_get_userbyid()�ϡ�Ϳ����줿�桼��ID�ֹ椫��桼��̾����Ф��ޤ��� pg_get_serial_sequence�ϡ�serial�ޤ���bigserial��˴�Ϣ�դ����������󥹤�̾������Ф��ޤ��� ����̾���ϥ������󥹴ؿ�����9.12���ȡˤ��Ϥ��ݤ�Ŭ���Ƥ��ޤ��� ��˥������󥹤���Ϳ����Ƥ��ʤ�����NULL���֤���ޤ���

pg_tablespace_databases�ˤ��ơ��֥���֤λ��Ѿ������ǧ���뤳�Ȥ��Ǥ��ޤ��� ����ϡ����Υơ��֥������˳�Ǽ���줿���֥������Ȥ���ĥǡ����١�����OID�ν�����֤��ޤ��� ���δؿ������餫�ιԤ��֤�����硢���Υơ��֥���֤϶��ǤϤʤ������Τ��ᡢ������뤳�Ȥ��Ǥ��ޤ��� �ơ��֥������˳�Ǽ���줿����Υ��֥������Ȥ�ɽ�����뤿��ˤϡ�pg_tablespace_databases�Ǽ��̤��줿�ǡ����١�������³��������pg_class�����������䤤��碌��Ԥ�ɬ�פ�����ޤ���

ɽ9-43�˼������ؿ��ϡ�COMMENT���ޥ�ɤˤ�äư�������¸���줿�����Ȥ���Ф��ޤ��� ���ꤵ�줿�ѥ�᡼���˰��פ��륳���Ȥ����Ф���ʤ���硢NULL�ͤ��֤���ޤ���

ɽ 9-43. �����Ⱦ���ؿ�

̾������ͷ�����
obj_description(object_oid, catalog_name)text�ǡ����١������֥������ȤΥ����Ȥ����
obj_description(object_oid)text�ǡ����١������֥������ȤΥ����Ȥ���� (�ѻ�ͽ��)
col_description(table_oid, column_number)text�ơ��֥����Υ����Ȥ����

obj_description()�ؿ���2�ѥ�᡼�������Ϥ���OID����ͭ���Ƥ��륷���ƥ५��������̾���ǻ��ꤵ�줿�ǡ����١������֥������ȤΥ����Ȥ��֤��ޤ��� �㤨�С�obj_description(123456,'pg_class')��OID 123456����ĥơ��֥�Υ����Ȥ���Ф��ޤ��� obj_description()�ؿ���ñ��ѥ�᡼�������ϥ��֥������Ȥ�OID�Τ�ɬ�פȤ��ޤ��� �ۤʤä������ƥ५���������Ϥä�OID����դǤ����ݾڤ�̵�����Ȥ��鸽�ߤϻȤ��ޤ��� �Ǥ����顢�ְ�ä������Ȥ��֤뤳�Ȥ�����ޤ���

col_description()�ؿ��ϡ��ơ��֥��OID�Ȥ������ֹ�ǻ��ꤵ���ơ��֥����Υ����Ȥ��֤��ޤ��� obj_description()�ؿ��ϡ��ơ��֥����Τ�OID���ͭ���Ƥ��ޤ���Τǡ��ơ��֥�����Ф��ƻ��Ѥ��뤳�ȤϤǤ��ޤ���