PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 9. �����Ͳ����� | Fast Forward | Next |
Table 9-39 ��ʾ�˼�����ȡ�Ự��ϵͳ��Ϣ�ĺ�����
Table 9-39. �Ự��Ϣ����
���� | �������� | ���� |
---|---|---|
current_database() | name | ��ǰ���ݿ������ |
current_schema() | name | ��ǰģʽ������ |
current_schemas(boolean) | name[] | ������·���е�ģʽ���� |
current_user | name | Ŀǰִ�л����µ��û��� |
inet_client_addr() | inet | ���ӵ�Զ��ַ |
inet_client_port() | int4 | ���ӵ�Զ�˶˿� |
inet_server_addr() | inet | ���ӵı��ص�ַ |
inet_server_port() | int4 | ���ӵı��ض˿� |
session_user | name | �Ự�û��� |
user | name | ���� current_user |
version() | text | PostgreSQL �汾��Ϣ |
session_user ͨ���dz�ʼ����ǰ���ݿ����ӵ��û��� ���������û������� SET SESSION AUTHORIZATION ��������á� current_user ������Ȩ�����û���ʶ��ͨ���� �����ǵ��ڻỰ�û��������ڽ��������� "setuid" �������������ǵ��ڻỰ�û��� �������ں���ִ�еĹ������������� SECURITY DEFINER �ĸı���ı䡣 �� Unix ��˵�����ô�Ự�û���"��ʵ�û�"������ǰ�û���"��Ч�û�"��
ע��: current_user��session_user�� �� user �� SQL�������������״̬�� ����ʱ��β��Ҫ�������š�
current_schema ����������·��ǰ���ģʽ���� ���������·���ǿ��� NULL���� ������������������������ʱû������Ŀ��ģʽ����ô������������Щ�����ģʽ�� current_schemas(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�������İ汾���ִ���
Table 9-40 �г���Щ �����û��ڳ������ѯ�������Ȩ�ĺ����� ���� Section 5.7 ��ȡ�����й�Ȩ����Ϣ��
Table 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 �ж�һ���û��Ƿ������ij���ض��ķ�ʽ����һ���� ���û�����ͨ�����ֻ��� ID ��pg_user.usesysid�� �����������ʡ�Ըò�������ʹ�� current_user�� �ñ����ͨ�����ֻ��� OID ����������ˣ�ʵ���������� has_table_privilege �ı��壬���ǿ���ͨ�����ǵIJ�����Ŀ���������������ǡ��� �����������������ô�ڱ�Ҫʱ�����ֿ�����ģʽ���εġ� ��ϣ����Ȩ����������һ���ı��ִ��������ģ����DZ���ó�����ļ�����ֵ֮һ�� 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 ��������һ�������� Section 8.12������ǰ�ɵõķ���Ȩ�����ͱ���ó� EXECUTE�� һ�����ӣ�
SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
has_language_privilege ���һ���û��Ƿ������ij���ض��ķ�ʽ����һ���������ԡ� ����ܲ������� has_table_privilege�� ���õķ���Ȩ�����ͱ���ó� USAGE��
has_tablespace_privilege ���һ���û��Ƿ�������ض���ʽ����һ����ռ䡣 ����ܲ������� has_table_privilege���û���Ҫ�ķ���Ȩ�ޱ������ó� CREATE��
has_schema_privilege ���һ���û��Ƿ� ������ij���ض��ķ�ʽ����һ��ģʽ������ܵIJ������� has_table_privilege�� ��ǰ�ɵõķ���Ȩ�����ͱ���ó� CREATE ���� USAGE��
Ҫ����һ���û��Ƿ���Ȩ���ϳ��и�Ȩѡ���Ȩ���ָ��� WITH GRANT OPTION������ 'UPDATE WITH GRANT OPTION'��
Table 9-41 ��ʾ����Щ�ж�һ�������Ƿ��ڵ�ǰģʽ����·�����ɼ��ĺ����� ���һ�������ڵ�ģʽ������·���У�����û��ͬ���ı����������·���ĸ���ĵط�����ô��˵������ӿɼ��ġ� ����Ч�ڱ���Բ�����ȷģʽ���ν������á����磬Ҫ�г����пɼ���ĵ����֣�
SELECT relname from pg_class WHERE pg_table_is_visible(oid);
Table 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);
��ע�������ַ�������һ��δ�����ε�����ûʲô���� — ���һ�����ֿ��Ա�ʶ�� �������ȵ��ǿɼ��ġ�
Table 9-42. ϵͳ����Ϣ����
���� | �������� | ���� |
---|---|---|
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 ��Ϊ�㣬����ֻ��ȡһ�������ֶεĶ��� |
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 | ������һ�����ʽ���ڲ���ʽ���������е��κ� Vars �����õڶ�������ָ���Ĺ�ϵ |
pg_get_expr(expr_text, relation_oid, pretty_bool) | text | ������һ�����ʽ���ڲ���ʽ���������е��κ� Vars �����õڶ�������ָ���Ĺ�ϵ |
pg_get_userbyid(userid) | name | ��ȡ������ ID ���û��� |
pg_get_serial_sequence(table_name, column_name) | text | ��ȡһ�� serial ���� bigserial �ֶ�ʹ�õ��������� |
pg_tablespace_databases(tablespace_oid) | setof oid | ��ȡ��ָ����ռ䣨OID��ʾ����ӵ�ж����һ�����ݿ�� OID �ļ��� |
pg_get_viewdef()��pg_get_ruledef()�� pg_get_indexdef()��pg_get_triggerdef����pg_get_constraintdef() �ֱ��һ����ͼ����������������������Լ�������¹��촴�����ǵ���� ����ע��������һ������������¹��죬�����Ǹ������ԭ�ġ��� pg_get_expr ������һ���������ʽ���ڲ���ʽ�� ����˵һ���ֶε�ȱʡֵ���ڼ��ϵͳ������ݵ�ʱ������á� ��Щ��������������������֣�����һ������ѡ��Խ����"Ư���Ĵ�ӡ"�� Ư����ӡ�ĸ�ʽ������������ȱʡ�ĸ�ʽ���п��ܱ������� PostgreSQL �汾��ͬ���ķ������ͣ����������ת������ô�����ܱ���ʹ��Ư����ӡ�� ��Ư����ӡ�������� false ���ɵĽ�����Ǹ�û����������ı������ɵĽ����ȫһ����
pg_get_userbyid ��ȡ������һ���û� ID �Ŷ�Ӧ���û����� pg_get_serial_sequence ץȡ�� serial ���� bigserial �ֶ���������������֡� ������־����˺��ʵĸ�ʽ�������Դ��ݸ����к��������� Section 9.12���� ����ֶ�û�и������У���ô���� NULL��
pg_tablespace_databases �������Ǽ��һ����ռ��ʹ��״���� ��������һ�����ݿ�� OID ���ϣ���Щ���ݿⶼ���ڸñ�ռ��б����ж�������ݿ⡣ �������������������У���ô�����Ƿǿյģ���˲���ɾ����Ҫ��ʾ����˸ñ�ռ���ض����� ����Ҫ�� pg_tablespace_databases ��������ݿ��ʶ�� pg_class �����ӽ��в�ѯ��
�� Table 9-43 ��ʾ�ĺ��� ��ԭ���� COMMENT ����洢����ע��ȡ������ ���û���ҵ�ƥ�������IJ�������ע���� NULL��
Table 9-43. ע����Ϣ����
���� | �������� | ���� |
---|---|---|
obj_description(object_oid, catalog_name) | text | ��ȡһ�����ݿ�������ע |
obj_description(object_oid) | text | ��ȡһ�����ݿ�������ע(����) |
col_description(table_oid, column_number) | text | ��ȡһ�����ֶε���ע |
����������ʽ�� obj_description ����һ�����ݿ�������ע�� �ö�����ͨ���� OID �������ϵͳ������������ġ� ���磬obj_description(123456,'pg_class') ������ OID Ϊ 12345 �ı����ע��һ�������� obj_description ֻҪ����� OID���������Ѿ������ˣ���Ϊ���Dz��ٱ�֤ OID �ڲ�ͬ��ϵͳ��֮����Ψһ�ģ���˿��ܻ᷵�ش������ע��
col_description ����һ������ֶε���ע�� ����ͨ�����ı���ֶκŵ� OID �������ġ� ���Dz��ܽ� obj_description ���ڱ��ֶΣ� ��Ϊ�ֶ�û���Լ��� OID��