33.4. �����Ȩ��

���� PostgreSQL ����ϵͳ�Բ�ѯ����д�� �dz�ʼ��ѯָ����������/��ͼ�����ʡ� ʹ�ø��¹����ʱ������ܰ����Ա��дȨ�ޡ�

��д���򲢲�ӵ��һ�������������ߡ� ��ϵ�������ͼ�����������Զ���Ϊ��д�����ȱʡ�����ߡ� PostgreSQL ����ϵͳ�ı�ȱʡ�ķ��ʿ���ϵͳ�����ԡ� ������ʹ�õĹ�ϵ�ڣ�������дʱҪ�Զ�����������߽���Ȩ�޼�飬 �����Ǽ��������û�����ζ��һ���û�ֻ��Ҫ�����IJ�ѯ����ȷָ���ı�/��ͼӵ�������Ȩ�޾Ϳɽ��в�����

���磺ij�û���һ���绰�����б�����һЩ��˽�˵ģ� �����һЩ�ǰ칫��������Ҫ�ġ������������淽����������ѯ����

CREATE TABLE phone_data (person text, phone text, private boolean);
CREATE VIEW phone_number AS
    SELECT person, phone FROM phone_data WHERE NOT private;
GRANT SELECT ON phone_number TO secretary;

���������⣨�������ݿⳬ���û���û���˿��Է��� phone_data �� ����ΪGRANT��������Դ� phone_number ��ͼ������SELECT�� ����ϵͳ���Ѵ� phone_number ���SELECT��дΪ�� phone_data ���SELECT���������ʸ��������� ֻ��private����Ϊ�ٵļ�¼�ſ���ѡ������Ϊ�û��� phone_number �������ߣ� ���Ҳ�ǹ���������ߣ���������Ҫ������� phone_data �Ķ����ʵ�Ȩ�ޣ� �������ѯ�DZ�����ġ�ͬʱҲҪ������ phone_number ��Ȩ�ޣ� �����Ƕ�һ��������Ȩ�޵��û����м��ģ����Գ����û��Լ���������û���˿���ʹ������

Ȩ�޼���ǰ������������еġ� ���Դ�ʱ��������Ψһ��һ�����Կ��������绰������ˡ� ���������������һ����ͼ���Ҹ������ͼ����Ȩ�ޡ� �������κ��˶�����ͨ���������ͼ���� phone_number ���ݡ� ���鲻�����������Ǵ���һ��ֱ�ӷ��� phone_data ����ͼ��ʵ�������ǿ��Եģ���û���κ����ã� ��Ϊÿ�����ʶ�����ͨ����Ȩ�޼������߳����񣩡� �����û��ܿ����ʶ�������鿪�������� phone_number ��ͼ�� ��������REVOKE�����أ����ķ���Ȩ�ޡ� ���������ж�������ͼ�ķ������Ͼ�ʧЧ�ˡ�

��Щ�˻���Ϊ������������ļ����һ����ȫ©��������ʵ�ϲ��ǡ� ���������������Ч�� ���齫���뽨��һ���� phone_number ����ͬ�ֶεı���ÿ��һ�εĿ������ݽ�ȥ�� ��ô�������Լ���������������Ը�����������κ��˷��ʵ�Ȩ���� һ��GRANT��ζ�� "��������"�����ij�������ε���������������飬 ����͸������Ƿ��REVOKE�ˡ�

�������ͬ���������ڸ��¹�������һ�µ������ �������ݿ���ı�������߿��԰ѣ����裩shoelace��ͼ ��Ȩ�� SELECT��INSERT��UPDATE �� DELETE ���������ˡ� ���� shoelace ֻ�� SELECT Ȩ�ޡ� д��־��¼�Ĺ�������action����Ȼ���Գɹ���ִ�С� ���������û����Կ�����־��¼���������ܴ���α��¼�� ������Ҳ���ܶ����м�¼�����޸Ļ�ɾ����