
# 开始使用
![](https://support.huaweicloud.com/supabase/public_sys-resources/note_3.0-zh-cn.png)
- 有关Supabase详细使用指导请参考[Supabase说明文档](https://supabase.com/docs)。
- 该解决方案使用22端口用来远程登录弹性云服务器 ECS，默认对Cloudshell出口IP放开。
- 方案通过 8000 端口提供 Supabase 控制台访问，默认开放0.0.0.0/0全网访问。生产环境基于最小权限原则调整网络策略，仅允许运维网段、后端业务网段访问该端口，收紧访问权限，消除未授权访问风险。
- 涉及到的Supabase业务端口如下：
  - 8000：访问Supabase服务控制台端口、REST API、Auth API。
   
 
#### 安全组规则修改
安全组实际是网络流量访问策略，包括网络流量入方向规则和出方向规则，通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。
如果您的实例关联的安全组策略无法满足使用需求，比如需要添加、修改、删除某个TCP端口，请参考以下内容进行修改。
- 添加安全组规则：根据业务使用需求需要开放某个TCP端口，请参考**[添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)**添加入方向规则，打开指定的TCP端口。
- 修改安全组规则：安全组规则设置不当会造成严重的安全隐患。您可以参考**[修改安全组规则](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0005.html)**，来修改安全组中不合理的规则，保证云服务器等实例的网络安全。
- 删除安全组规则：当安全组规则入方向、出方向源地址/目的地址有变化时，或者不需要开放某个端口时，您可以参考**[删除安全组规则](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0006.html)**进行安全组规则删除。
 
#### Supabase控制台使用
1. 使用远程ssh登录工具登录到Supabase所在ECS，获取控制台Supabase用户登录密码，通过[快速部署步骤6](https://support.huaweicloud.com/supabase/supabase_05.html#supabase_05__li13144142215158)获取控制台登录地址
   
   图1执行命令获取登录密码
   ```
   执行此命令获取控制台登录密码：sh /opt/supabase/run.sh secrets
   ```
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002688702529.png "点击放大")
   DASHBOARD_PASSWORD为supabase用户密码
   图2登录Supabase控制台   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002656821080.png "点击放大")
   
   
2. 控制台建表 
   图3控制台建表
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002723380559.png "点击放大")
   
   图4建表详情   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002680661676.png "点击放大")
   Name：输入表名称，此案例以user_demo为例
   Columns：定义表字段
   Data API access：自动生成该表的REST API接口地址
   
   
3. 表权限配置 
   图5进入Authentication功能模块   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002656996954.png)
   图6进入到Policies模块   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002656998194.png "点击放大")
   图7单击user_demo表后方"Disable RLS"   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002677517078.png "点击放大")
   图8单击"Disable RLS"   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002656998616.png "点击放大")
   ![](https://support.huaweicloud.com/supabase/public_sys-resources/caution_3.0-zh-cn.png)
   如果关闭 RLS，**所有携带 Publishable key 的请求都能无限制读写整张表**，测试演示可用，生产环境严禁关闭。
   
   
4. 获取API Keys
   
   图9获取API Keys，表接口调用使用   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002677357338.png "点击放大")
   
   
 
#### 通过接口调用实现表的CRUD操作
本案例以shell脚本的方式通过调用表的REST API接口，实现表中数据的CRUD相关操作
1. 数据插入，在Supabase所在ECS上输入如下命令：向 user_demo 数据表插入一条 {name: 张三，age:22} 的记录 
   ```
   curl --connect-timeout 5 -m 10 -s -X POST "http://127.0.0.1:8000/rest/v1/user_demo" -H "apikey: sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Authorization: Bearer sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Content-Type: application/json" -H "Prefer: return=representation" -d '{"name":"张三","age":22}'
   ```
   参数详解：
   REST API请求地址：http://127.0.0.1:8000/rest/v1/user_demo
   apikey项目公开 Publishable key：Supabase控制台使用章节步骤4[获取API Keys]获取
   Authorization：同"apikey"一致
   图10执行完上述命令后返回Supabase控制台可看到数据成功写入user_demo表中   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002707197245.png "点击放大")
   
   
2. 数据查询，在Supabase所在ECS上输入如下命令：获取user_demo表全部数据 
   ```
   curl --connect-timeout 5 -m 10 -s -X GET "http://127.0.0.1:8000/rest/v1/user_demo" -H "apikey: sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Authorization: Bearer sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Content-Type: application/json"
   ```
   图11检索结果   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002657017872.png "点击放大")
   
   
3. 数据更新，在Supabase所在ECS上输入如下命令：更新id=1的数据为{"name":"李四","age":25} 
   ```
   curl --connect-timeout 5 -m 10 -s -X PATCH "http://127.0.0.1:8000/rest/v1/user_demo?id=eq.1" -H "apikey: sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Authorization: Bearer sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Content-Type: application/json" -H "Prefer: return=representation" -d '{"name":"李四","age":25}'
   ```
   图12原有记录被更新   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002677366638.png "点击放大")
   
   
4. 条件查询，在Supabase所在ECS上输入如下命令：检索age=25的数据 
   ```
   curl --connect-timeout 5 -m 10 -s -X GET "http://127.0.0.1:8000/rest/v1/user_demo?age=eq.25" -H "apikey: sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Authorization: Bearer sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Content-Type: application/json"
   ```
   图13检索结果   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002687097393.png "点击放大")
   
   
5. 数据删除，在Supabase所在ECS上输入如下命令：删除id=1的数据 
   ```
   curl --connect-timeout 5 -m 10 -s -X DELETE "http://127.0.0.1:8000/rest/v1/user_demo?id=eq.1" -H "apikey: sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Authorization: Bearer sb_publishable_ynNx8elhsQ8CU10ZIWow3v_ST-gnDbJ" -H "Content-Type: application/json"
   ```
   图14数据被删除   
   ![](https://support.huaweicloud.com/supabase/zh-cn_image_0000002677526564.png "点击放大")
   
   
 
