GRANT

Name

GRANT -- �������Ȩ��

Synopsis

GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] tablename [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE dbname [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTION funcname ([type, ...]) [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE langname [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schemaname [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE tablespacename [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

����

GRANT ���ij���󣨱���ͼ�����У��������������ԣ�ģʽ���߱�ռ䣩 �ϵ��ض�Ȩ�޸���һ���û����߶���û�����һ���û��� ��ЩȨ�޽����ӵ���Щ�Ѿ������Ȩ���ϣ����������ЩȨ�޵Ļ���

���� PUBLIC ��ʾ��Ȩ��Ҫ���������û�, ������Щ�Ժ���ܴ������û���PUBLIC ���Կ�����һ����������õ��飬�����ǰ��������û��� �κ��ض����û�����ӵ��ֱ�Ӹ�����/����Ȩ�ޣ�������/���������κ��飬 �Լ��ټ��ϸ��� PUBLIC ��Ȩ�޵��ܺ͡�

��������� WITH GRANT OPTION����ôȨ�޵�������Ҳ���Ը�����ˡ� û�����ѡ�����Ȩ�޵��û����ܸ�������Ȩ������ġ� Ŀǰ����Ȩѡ��ֻ�ܸ��������û��������ܸ������ PUBLIC��

�Զ���������ߣ�ͨ�����Ǵ����ߣ����ԣ�û��ʲôȨ����Ҫ���裬 ��Ϊ������ȱʡ�ͳ�������Ȩ�ޡ��������������߳��ڰ�ȫ���ǿ���ѡ�����һЩ���Լ���Ȩ�ޡ��� ɾ��һ�������Ȩ���������������޸�����Ȩ�������ǿɸ����Ȩ�����������ģ� ���Ǵ����߹��еģ����Ҳ��ܸ��������������Ҳ������ӵ�иö����������Ȩѡ�

���ݶ���IJ�ͬ����ʼ��ȱʡȨ�޿��ܰ����� PUBLIC ����һЩȨ�ޡ�ȱʡ���ö��ڱ�ģʽ�ͱ�ռ���û�й�������Ȩ�޵ģ� TEMP ��Ϊ���ݿⴴ��Ȩ�ޣ�EXECUTE Ȩ�����ں����� �Լ� USAGE �������ԡ����������ߵ�Ȼ���Գ�����ЩȨ�ޡ� ���������ȫ�Կ��ǣ��ڴ����ö����ͬһ�������з��� REVOKE�� ��ô�Ͳ���򿪸�����û�ʹ�øö���Ĵ��ڡ���

���ܵ�Ȩ���У�

SELECT

����������ı���ͼ���������� SELECT �����ֶΡ��������� COPY TO ��Դ�� �������ж��ԣ����Ȩ�޻�����ʹ�� currval ������

INSERT

�����������ı� INSERT һ�����С� ͬʱ�������� COPY FROM��

UPDATE

����������ı��������ֶ��� UPDATE�� SELECT ... FOR UPDATE ҲҪ�����Ȩ�� ������ SELECT Ȩ��֮�⣩�����磬 ���Ȩ������ʹ��nextval�� �� setval��

DELETE

����������ı��� DELETE �С�

RULE

�����ڸñ�/��ͼ�ϴ������򡣣����� CREATE RULE ��䡣��

REFERENCES

Ҫ����һ�����Լ����������ڲο���ͱ��ο����϶�ӵ�����Ȩ�ޡ�

TRIGGER

�������������ϴ����������������� CREATE TRIGGER ��䡣��

CREATE

�������ݿ⣬�����ڸ����ݿ��ﴴ���µ�ģʽ��

����ģʽ�������ڸ�ģʽ�д����µĶ��� Ҫ������һ�����ж��������ӵ�иö��������� �԰����ö����ģʽӵ�����Ȩ�ޡ�

���ڱ�ռ䣬������ڸñ�ռ��д������Լ����������ݿ��ģʽ��ʱ��Ѹñ�ռ�ָ��Ϊ��ȱʡ��ռ䡣 ����ע�⣬�������Ȩ�޲���ı��������ݿ��ģʽ�Ĵ��λ�á���

TEMPORARY
TEMP

������ʹ�ø����ݿ��ʱ�򴴽���ʱ��

EXECUTE

����ʹ��ָ���ĺ������ҿ���ʹ���κ�������Щ����ʵ�ֵIJ������� ���������ں�����Ψһ��һ��Ȩ�����͡� �����﷨ͬ�������ھۼ���������

USAGE

���ڹ������ԣ� ����ʹ��ָ���������Դ��������Եĺ����� ���������ڹ������Ե�Ψһ��һ��Ȩ�����͡�

����ģʽ��������ʰ�����ָ��ģʽ�еĶ��󣨼���ö��������ȨҪ��ͬ��Ҳ�����ˣ��� ������Щ��������Ȩ�޽�����"��ѯ"ģʽ�еĶ���

ALL PRIVILEGES

һ���Ը������п��Ը����Ȩ�ޡ� PRIVILEGES �ؼ����� PostgreSQL ���ǿ�ѡ�ģ� �����ϸ�� SQL Ҫ��������ؼ��֡�

��������Ҫ���Ȩ�޶�����Ӧ������IJο�ҳ���г���

ע��

REVOKE ��������ɾ������Ȩ�ޡ�

����Ƕ�����������ͼ�ڶ����� GRANT Ȩ�ޣ������û�û�иö�����ָ����Ȩ�ޣ���ô�������ʧ�ܡ� ֻҪ��ijЩ���õ�Ȩ�ޣ�������ͻ������������ֻ������Щ���û�����Ȩѡ���Ȩ�ޡ� �����ͷû�п��õ���Ȩѡ���ô GRANT ALL PRIVILEGES ��ʽ������һ��������Ϣ�� ����������ʽ���������������ᵽ�ģ�����û����Ȩѡ�����ЩȨ����صľ�����Ϣ�� ����Щ���ԭ����Ҳ�����ڶ��������ߣ�������Ϊ���������DZ���Ϊӵ��������Ȩѡ��������������Զ���ᷢ�������������ϡ���

����Ҫע�����ݿⳬ���û����Է������ж��� �������ܶ����Ȩ������Ӱ�졣����ص����� Unix ϵͳ�� root ��Ȩ�ޡ��� root һ�������˱�Ҫ������������Գ����û���ֽ��в����Dz����ǵ�������

Ŀǰ��PostgreSQL ��֧�ָ�һ����Ķ����ֶν���Ȩ�޸���ͳ����IJ����� һ���ƿ��İ취�Ǵ���һ��ӵ���Ǽ��е���ͼȻ����Ǹ���ͼ����Ȩ�ޡ�

ʹ�� psql �� \z �����ȡ�����ж����ϵ���Ȩ���йص���Ϣ��

lusitania=> \z mytable

                        Access privileges for database "lusitania"
 Schema |  Name   | Type  |                     Access privileges
--------+---------+-------+------------------------------------------------------------
 public | mytable | table | {miriam=arwdRxt/miriam,=r/miriam,"group todos=arw/miriam"}
(1 row)

\z ��ʾ����Ŀ�������£�

              =xxxx -- ���� PUBLIC ��Ȩ��
         uname=xxxx -- ����һ���û���Ȩ��
   group gname=xxxx -- ����һ�����Ȩ��

                  r -- SELECT ("��")
                  w -- UPDATE ("д")
                  a -- INSERT ("׷��")
                  d -- DELETE
                  R -- RULE
                  x -- REFERENCES
                  t -- TRIGGER
                  X -- EXECUTE
                  U -- USAGE
                  C -- CREATE
                  T -- TEMPORARY
            arwdRxt -- ALL PRIVILEGES (���ڱ�)
                  * -- ��ǰ��Ȩ�޵���Ȩѡ��

              /yyyy -- �ڳ����Ȩ�޵��û�

�û� miriam �ڽ����֮�������������䣬 �Ϳ��Եõ��������ӵĽ��

GRANT SELECT ON mytable TO PUBLIC;
GRANT SELECT, UPDATE, INSERT ON mytable TO GROUP todos;

���һ�������Ķ���� "Access privileges" �ֶ��ǿյģ� ����ζ�Ÿö�����ȱʡȨ�ޣ�Ҳ����˵������Ȩ���ֶ��� NULL���� ȱʡȨ�����ǰ��������ߵ�����Ȩ�ޣ��Լ����ݶ���IJ�ͬ�����ܰ���һЩ�� PUBLIC ��Ȩ�ޡ� �����ϵ�һ�� GRANT ���� REVOKE ��ʵ�������ȱʡȨ�ޣ����磬���� {=,miriam=arwdRxt}�� Ȼ�����ÿ���ض��������޸�����

��ע�������ߵ�������Ȩѡ��û������ʾ�����ķ���Ȩ�����dz����� ֻ������Ȩѡ����ȷ������ij��֮�󣬲Ż���ʾһ�� *��

����

�ѱ� films �IJ���Ȩ�޸��������û���

GRANT INSERT ON films TO PUBLIC;

�����û�manuel����ͼkinds������Ȩ�ޣ�

GRANT ALL PRIVILEGES ON kinds TO manuel;

��ע�⣬�������������ɳ����û����� kinds ��������ִ�У���ô��ʵ���ϻḳ������Ȩ�ޣ� �����������ִ�У���ô���ḳ������������ˡ�ӵ����Ȩѡ�������Ȩ�ޡ�

������

���� SQL ��׼���� ALL PRIVILEGES ��� PRIVILEGES �ؼ����DZ���ġ�SQL ��֧����һ��������Զ��������Ȩ�ޡ�

PostgreSQL ����һ�����������߳������Լ�����ͨȨ�ޣ� ���磬һ���������߿������Լ����������ֻ���ģ������dz����Լ��� INSERT��UPDATE�� �Լ� DELETE Ȩ�ޡ����� SQL ��׼�����Dz����ܵġ�ԭ���� PostgreSQL �������ߵ�Ȩ�޵����������߸��Լ�����ģ����Ҳ���Գ������ǡ� �� SQL ��׼������ߵ�Ȩ���Ǽ���Ϊ "_SYSTEM" ʵ�帳��ġ���Ϊ�����߲��� "_SYSTEM"�� ���������ܳ�����ЩȨ�ޡ�

SQL ��׼������һ������Ϊ�������ֶ�����Ȩ�ޣ�

GRANT privilege
    ON table [ ( column [, ...] ) ] [, ...]
    TO { PUBLIC | username [, ...] } [ WITH GRANT OPTION ]

SQL ��׼���������͵Ķ����ṩ��һ�� USAGE Ȩ�ޣ��ַ�����У����ת������

RULE Ȩ�ޣ��Լ������ݿ⣬��ռ䣬ģʽ�����Ժ������ϵ�Ȩ���� PostgreSQL ��չ��

�ּ�

REVOKE