35 lines
1.5 KiB
SQL
35 lines
1.5 KiB
SQL
-- =====================================================================================
|
||
-- RLS: 客服模块安全策略
|
||
-- 位置:docs/sql/20_rls/kefu/ml_kefu_rls_v1.sql
|
||
-- 对象类型:RLS 策略
|
||
-- 版本:v1
|
||
-- 说明:管理端全量访问通过 RPC 完成;用户仅能操作自己的留言反馈
|
||
-- =====================================================================================
|
||
|
||
-- 开启所有表的 RLS
|
||
ALTER TABLE public.ml_kefu_accounts ENABLE ROW LEVEL SECURITY;
|
||
ALTER TABLE public.ml_kefu_word_categories ENABLE ROW LEVEL SECURITY;
|
||
ALTER TABLE public.ml_kefu_words ENABLE ROW LEVEL SECURITY;
|
||
ALTER TABLE public.ml_kefu_feedbacks ENABLE ROW LEVEL SECURITY;
|
||
ALTER TABLE public.ml_kefu_auto_replies ENABLE ROW LEVEL SECURITY;
|
||
|
||
-- 1. 留言反馈表策略
|
||
-- 允许登录用户插入自己的留言
|
||
DROP POLICY IF EXISTS ml_kefu_feedbacks_user_insert ON public.ml_kefu_feedbacks;
|
||
CREATE POLICY ml_kefu_feedbacks_user_insert
|
||
ON public.ml_kefu_feedbacks
|
||
FOR INSERT
|
||
TO authenticated
|
||
WITH CHECK (user_id = auth.uid());
|
||
|
||
-- 允许用户查看自己的留言
|
||
DROP POLICY IF EXISTS ml_kefu_feedbacks_user_select ON public.ml_kefu_feedbacks;
|
||
CREATE POLICY ml_kefu_feedbacks_user_select
|
||
ON public.ml_kefu_feedbacks
|
||
FOR SELECT
|
||
TO authenticated
|
||
USING (user_id = auth.uid());
|
||
|
||
-- 其他表(账号、话术、自动回复)默认不向 anon/authenticated 角色开放 SELECT/INSERT/UPDATE/DELETE
|
||
-- 管理端全量管理将通过 SECURITY DEFINER 的 RPC 函数执行
|