[PATCH] Reworks for Access Control facilities (r2350)
The attached patch is a revised version based on the previous
discussions at:
http://archives.postgresql.org/message-id/20090929105431.GO17756@tamriel.snowman.net
http://archives.postgresql.org/message-id/4AC1EA9E.3080907@kaigai.gr.jp
http://archives.postgresql.org/message-id/20090929173049.GP17756@tamriel.snowman.net
http://archives.postgresql.org/message-id/4AC2BDD0.7050906@ak.jp.nec.com
http://archives.postgresql.org/message-id/20090930105911.GS17756@tamriel.snowman.net
http://archives.postgresql.org/message-id/4AC40133.4080509@ak.jp.nec.com
Please review the new revision, Thanks,
* List of updates
- code base was updated to the latest CVS HEAD.
- reverted changes on FindConversion() and EnableDisableRule().
these changes are discussed in the different topics.
- removed uncertain comment at the restrict_grant().
- added comment about SQL specifications for each ac_xxx_grant().
- eliminate MEMO: and FIXME: prefix
- moved ac_language_create() prior to the CreateProcedure() because
it may update the pg_proc system catalog.
- removed ac_schema_search() invocations when the target namespace is
obviously temporary namespace. And, added a comment to bypass checks
for both of DAC/MAC on temporary namespaces.
- uncommented "ac_object_drop() should be here", and added actual
ac_object_drop() at the performDeletion() and performMultipleDeletion().
The 'permission' argument was added to these functions.
- uncommented "ac_attribute_xxxx() should be here", and put actual
ac_attribute_create() and ac_attribute_drop() calls here.
- ac_aggregate_execute() function was added.
- add a memo for minor behavior changes at src/backend/security/README
(It is a initial description, so needs more brushing up)
$ diffstat sepgsql-01-base-8.5devel-r2350.patch.gz
backend/Makefile | 2
backend/catalog/aclchk.c | 254 !
backend/catalog/dependency.c | 31
backend/catalog/heap.c | 2
backend/catalog/namespace.c | 54
backend/catalog/pg_aggregate.c | 12
backend/catalog/pg_operator.c | 42
backend/catalog/pg_proc.c | 29
backend/catalog/pg_shdepend.c | 13
backend/catalog/pg_type.c | 25
backend/commands/aggregatecmds.c | 44
backend/commands/alter.c | 78
backend/commands/analyze.c | 5
backend/commands/cluster.c | 11
backend/commands/comment.c | 125
backend/commands/conversioncmds.c | 73
backend/commands/copy.c | 40
backend/commands/dbcommands.c | 160 !
backend/commands/foreigncmds.c | 150
backend/commands/functioncmds.c | 132
backend/commands/indexcmds.c | 120
backend/commands/lockcmds.c | 17
backend/commands/opclasscmds.c | 246 !
backend/commands/operatorcmds.c | 72
backend/commands/proclang.c | 63
backend/commands/schemacmds.c | 62
backend/commands/sequence.c | 38
backend/commands/tablecmds.c | 370 -
backend/commands/tablespace.c | 46
backend/commands/trigger.c | 43
backend/commands/tsearchcmds.c | 182 !
backend/commands/typecmds.c | 143 !
backend/commands/user.c | 183 !
backend/commands/vacuum.c | 5
backend/commands/view.c | 7
backend/executor/execMain.c | 208 !
backend/executor/execQual.c | 16
backend/executor/nodeAgg.c | 38
backend/executor/nodeMergejoin.c | 8
backend/executor/nodeWindowAgg.c | 42
backend/optimizer/util/clauses.c | 6
backend/parser/parse_utilcmd.c | 13
backend/postmaster/autovacuum.c | 2
backend/rewrite/rewriteDefine.c | 5
backend/rewrite/rewriteRemove.c | 8
backend/security/Makefile | 10
backend/security/README | 294 ++
backend/security/access_control.c | 4593 ++++++++++++++++++++++++++++++++++++++
backend/tcop/fastpath.c | 15
backend/tcop/utility.c | 74
backend/utils/adt/dbsize.c | 25
backend/utils/adt/ri_triggers.c | 24
backend/utils/adt/tid.c | 18
backend/utils/init/postinit.c | 15
include/catalog/dependency.h | 4
include/catalog/pg_proc_fn.h | 1
include/commands/defrem.h | 1
include/utils/security.h | 348 ++
58 files changed, 5747 insertions(+), 914 deletions(-), 1986 modifications(!)
--
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>
Attachments:
sepgsql-01-base-8.5devel-r2350.patch.gzapplication/gzip; name=sepgsql-01-base-8.5devel-r2350.patch.gzDownload
� ���J �]{s�J���|���n��O�l���7��}ro���di ���Iv��|��=I�1&���S�
�L�L?~����e�F��e3��>=��ytk�w���>wtd;���>5W�z����]1w�l2�3��D��T��J��K���b���j�^�tR.�z�����NhQ�_���
oC��,�8UE�p�x��z]:X�!�wp�������0M�����?`���F`8����SFLo:5\�'�5��cd�1j�]����o��(�������O�Y`O�B�����S��;�c�~>0;�P�5��@�S���>5�9!a`;���e�O��b1�/������@^������o�@�������F�����1'w��
�LY���R��IH�;t�~Lt���I��N����7�J��O%�xw�
�&�������_{�8?�F�1�l�?���x��s�4� ]��Q_,�P�\]m=����p��%#�#�Mr=-��6
���3�1�L|L�|��lh��qUy��A��NSU
���$�2�O������xxq����~@����>>u�)M�M����� �W��wP�u�aF��qx�&�n8f���2b����7�
�����y
-I��G�`s~\!w�pX�����A���7����k\
H�x�������oma������No��� ���b%���;f�!���]>�u�l`�:tz�����DW���P^J�G��|��{ ��wC��_��EG�uzy��ps�u��W��5���~D5{�r�u*2�y�z�R>�G9���)e0DP���Ld��E �X�\vML� �r��l���`���2��q3�����0� e��)L�0��������`����L�d���,�
������\0�q��|���a66D��v�3;
����Y�q�9�N����N�lx�����=}���s�EZ���~�����,�N�e��{���ek0��Z�}�����7h��M�{����*����u�Ck� IU�1�W�����o��������i]l�CU�1��������#����\nL5.������0�����z�v����������B�e���F��1���{}
<)�Q���y+� hx'����� � i��� ��S�qBi
�&8�30pF�m ���!syw�=�[N��4��}� ���
aB��z�H��4��& �����C�L�#!�P���������=�� 1�x.�z9����s/$�sI ���*�="�E�&��//�XX:��D`�tM�����������������#�=�($+B�O���a����}�����]SK��!��<����3�<T:��}����w~�Hr�|6!I��k�OW�����Uh�P��Y_N�B�3�j��DZf.���\i������j�64�QW���r
��������49^����j^`�!�6@�w\�]�����
� "�zIk�kq�Zo��F�8��g#Fi��|��+$�p�Cd9��$��@ �2����!ub��-@C�@���|@��j���]/8Mh����$���;!]/�'H����@���$q�b�(j�Y�1�iM�s��h �q�)���s70�`���t�5 S�~�WF4.� |F� >�S���s4u�p<9u��s�qy�m2���])�[zVHf�O���m�+-�R
�P�����N���]^���Hm�p���/X���'�E�������u]k�q`����4Q �>]P)%��M����}�p^�����cM/UR �\�MB�o�Dt*'����Dt��7y�#�!5MIy����Y:��J5�*�lGI��4������+�
����p�����Gr��QS]I�a�M�l��%�to./W�{�u6k�Z��XL[=A�$�-�����t��DU�����8�&ctI�L�Zj6~|�Am��������)��j�
�gF`��:x,� ����SZvkw��],YKH5C�;����O2��@�;���H-VH(�%%�t�/�2~�Y�^�^�5]o�R�����s�K����D�Jc�"��rpE�2_�Jn�h��D�^ XkTz��t3]���s�aZU�uM��+/h�+�YY�����L��jJ��N0��������D%��p�>0c6�LJ}Y./x�^���gC����{��@K�U�Z��j���W��+���3ka(�|.9�@o'�Ui�C]��!�� _��B���y�-�k��>�B�|,qV�W4��h�`��}-�~Vh��2k�<S�|� ^����?SH��(��eQ���0�J3�R��;a��@�~���%��v
Rp?��~�L�r���J����U�V��z���U�J!�by�- +KC�Z��?3�5���q ����Kk�������0�� Z��� ���^?�(�� �F�F������R���yA�-�+SM��l����u��A2�K�W����f��_������r������D���3s'nW�1b��3�� f
�/����@�l%������y�i 5dK>>�&B�r�\���z�Ln�O������"������1������`����i_l@g^�.���3�Z(����N�~�v;wq2/y$(����W���B���K'���?)�>QT���s�~5�DG�!A�l��;���\QU
l���U�'��_�G�='O�����F)��J������Y�P��d|�(E6
{�&�8���;&[O�EJQO ��������k����:������?��������R|`I���nPH�^���pz)9����"�9)�� �'���W�|I�^}@�i��cj�i�o��''V,��Z@���q7��70�d �����k��^j�,�'����
�r�r���O�������K4z0�~��������~�J��|�nw��847���?s��v��9��3?���l���x�[D0�4n&nz����r��8�$�G}3�,�~ n��q�'^�X��{:sl��{���a�'�`��4=��������G����3Q�(({
���L����%�S
N2:����G$.�� u����
B�a��X��~�� V����^��� ��V�@��k=���D7�L��p��A�D��y�g����Z�4
[�E���_f� O��z /T����]��_���1�"��
XH�bM��!���n���
� ��K$�O��C��0���)��w����p|����E� sKQ&��0���x��c�z�0C0B4q�)��5Wd���&������C
�X
���%!4�z��I��o�
`QMs��`~OG����AeX J��:3X�=C��vc���M�,���I��E���������2��$��)}���!�9�����4���Q��-�����3��7�`��[
0,��%T d��TIy��p�[���b�}� ���>P�:�����8K��:��>���9P�� 4z-��NLN��V����A'���X�����L6�%�I�����j��Di�h�9T��M��� �Yh���
��|xwp����a�R�!:@�@%U��b���B�6�#^U@�Re�8Q�����_����_F�1��r��:�l]{�7u���d� sR 44
���R���?@���:�!$?D[��k
m����.��T�#.)D.��_�)�:
����>�LbC����(�H��y�odx
p
�+�o�}�.v�h���*e]����V*�Z��|��?��j�a�=�3��[m�B���Vi'�2��Z�\���8�M�#���Q�n��d*�)���!c�z9s���_�y.x-�����qI8#�BL�T�#7��0%�R<�,�=��M8h�y�'�r���&���
�D���(�����v��T�'��&����aPG�t��SL� ']�?���
?�R�iz���,#���� ��zp����4���$�\YZ(=oy�W
��T�F�$1VGF ���P*�!�������~�j�Gk���&E�����(�^���1MBiW��_���ND/A�
G��j�#�k����!���Ru���
�3^�����:��X=53a��F�G�k��)���2�����=���KI��3�G���rD�rA=q
�t��TS�{�yw���Edl��:��a�b����L���t,��l�N����x[����������a����OE�Z8��3���lL���{�v�RA����2E��������U]8������E1�|�;ko�g��N�}6�����*h�$�/N�q~Ol� �����}/���/��i$��PP��P4�F���O�V#��7`+_��7��E[�p��������N���z�mL�����k������d(S�R�����
��SF������\�r�s�i�N{O�=���/O������6a�x"R$v 3������ QL�d }1MIn�PFM��r��3�5��I�A#��~/�0�D�T����;^ ;��:)�%9w����] �3s�mI� e�"��C�����"���O]2�_.�&W��~M^ �����N���E�^�)��n����9(��������|�ZRA�G���YB�b���/�K���� ����u�������W�V����G�,���������m���F,���d�D�s���h(�$�+4v�h����xG=���o��F��"�3��)
�'�]4�
�!��
9���[������c�=�;2����������@�@�Zc���aWp���
d�Kr�Ho���"#�HRHpM2gl����q��\�.�\�i��e��,hd�WF0�c�Q�]j�u
~'���+D����~�B�+;�F�7@+i6���,�{����?�����>�H����
�R�FZ�b)���{�bS�}�M��;�����;$����v&Y�p��?���>