@武君 参考如下操作命令:
-- 创建一个角色表,用以简单管理用户的角色,比如role_name是admin表示管理员
-- user_id是用户的uuid,对应前端的user.id
create table user_roles(
"user_id" uuid references auth.users NOT NULL,
"role_name" text not null
)
-- 创建一个函数,判断用户是否为admin
CREATE FUNCTION is_admin()
RETURNS boolean
LANGUAGE sql AS
$func$
select EXISTS (
SELECT * FROM user_roles
WHERE (user_id= auth.uid() and role_name = 'admin')
)
$func$;
-- 对于需要管理权限的表,都开启RLS并创建policy
create policy "管理员可以对该表进行任意操作" on <your_table_name>
for all
using( is_admin() )
with check( is_admin() )