{"Entry":{"collection":"sql","key":"drop-policy","name":"DROP POLICY","aliases":["droppolicy"],"metadata":{"aliases":["droppolicy"],"changed_in":["9.6"],"changes":[{"from":"9.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"9.5"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]"],"removed":[]},"to":"9.6"},{"from":"13","purpose_changed":true,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"14"}],"content_hash":"ef90fb3df101b566c4893f481fbf5af83356c5474f3ea5228eaf9375d8eefe9b","editorial":{},"first_version":"9.5","group":"role","imported_at":"2026-09-30T17:43:38.161225+08:00","last_version":"20","name":"DROP POLICY","object":"POLICY","position":5011,"present_in":["9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"remove a row-level security policy from a table","purpose_zh":"","related":["create-policy","alter-policy"],"slug":"drop-policy","source_rev":"a709ab85","synopsis":"DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]","verb":"DROP"}},"Definition":{"Collection":"sql","Key":"drop-policy","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"drop-policy","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-DROPPOLICY","file":"sql-droppolicy.html","lang":"en","name":"DROP POLICY","purpose":"remove a row-level security policy from a table","purpose_zh":"","related":["create-policy","alter-policy"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP POLICY\u003c/code\u003e removes the specified policy from the table. Note that if the last policy is removed for a table and the table still has row-level security enabled via \u003ccode class=\"command\"\u003eALTER TABLE\u003c/code\u003e, then the default-deny policy will be used. \u003ccode class=\"literal\"\u003eALTER TABLE ... DISABLE ROW LEVEL SECURITY\u003c/code\u003e can be used to disable row-level security for a table, whether policies for the table exist or not.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eDo not throw an error if the policy does not exist. A notice is issued in this case.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the policy to drop.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etable_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name (optionally schema-qualified) of the table that the policy is on.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCASCADE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThese key words do not have any effect, since there are no dependencies on policies.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eTo drop the policy called \u003ccode class=\"literal\"\u003ep1\u003c/code\u003e on the table named \u003ccode class=\"literal\"\u003emy_table\u003c/code\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP POLICY p1 ON my_table;\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP POLICY\u003c/code\u003e is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-policy/?v=18\" title=\"CREATE POLICY\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE POLICY\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-policy/?v=18\" title=\"ALTER POLICY\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER POLICY\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"DROP POLICY [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ON \u003cem class=\"replaceable\"\u003e\u003ccode\u003etable_name\u003c/code\u003e\u003c/em\u003e [ CASCADE | RESTRICT ]","synopsis_text":"DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"drop-policy","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"DROP POLICY","Summary":"从一个表中移除一条行级安全策略","BodyHTML":"\u003cpre\u003eDROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eDROP POLICY\u003c/code\u003e从表中移除指定的策略。注意，如果移除了某表的最后一条策略，并且该表仍通过\u003ccode\u003eALTER TABLE\u003c/code\u003e启用了行级安全，那么将采用默认拒绝策略。无论该表是否存在策略，都可以使用 \u003ccode\u003eALTER TABLE ... DISABLE ROW LEVEL SECURITY\u003c/code\u003e 来禁用该表的行级安全。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果该策略不存在，则不要抛出错误。这种情况下会发出一个提示。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要删除的策略名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003etable_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该策略所在表的名称（可选模式限定）。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eCASCADE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e由于策略上不存在依赖关系，这些关键字不起任何作用。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e要删除表\u003ccode\u003emy_table\u003c/code\u003e上名为\u003ccode\u003ep1\u003c/code\u003e的策略：\u003c/p\u003e\u003cpre\u003eDROP POLICY p1 ON my_table;\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eDROP POLICY\u003c/code\u003e是\u003cspan\u003ePostgreSQL\u003c/span\u003e扩展。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/create-policy/?v=18\" title=\"CREATE POLICY\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE POLICY\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-policy/?v=18\" title=\"ALTER POLICY\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER POLICY\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"ca8534aa34e52b9c6adc102867bb6dfcf0efc994001824067e03c50a5824c71e","Payload":{"purpose_zh":"从一个表中移除一条行级安全策略","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP POLICY\u003c/code\u003e从表中移除指定的策略。注意，如果移除了某表的最后一条策略，并且该表仍通过\u003ccode class=\"command\"\u003eALTER TABLE\u003c/code\u003e启用了行级安全，那么将采用默认拒绝策略。无论该表是否存在策略，都可以使用 \u003ccode class=\"literal\"\u003eALTER TABLE ... DISABLE ROW LEVEL SECURITY\u003c/code\u003e 来禁用该表的行级安全。\u003c/p\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果该策略不存在，则不要抛出错误。这种情况下会发出一个提示。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要删除的策略名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etable_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该策略所在表的名称（可选模式限定）。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCASCADE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e由于策略上不存在依赖关系，这些关键字不起任何作用。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e要删除表\u003ccode class=\"literal\"\u003emy_table\u003c/code\u003e上名为\u003ccode class=\"literal\"\u003ep1\u003c/code\u003e的策略：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP POLICY p1 ON my_table;\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP POLICY\u003c/code\u003e是\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e扩展。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-policy/?v=18\" title=\"CREATE POLICY\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE POLICY\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-policy/?v=18\" title=\"ALTER POLICY\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER POLICY\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"DROP POLICY [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ON \u003cem class=\"replaceable\"\u003e\u003ccode\u003etable_name\u003c/code\u003e\u003c/em\u003e [ CASCADE | RESTRICT ]","synopsis_text":"DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
