# 教程：新物理集群划分为逻辑集群
#### 场景介绍
本章节演示一套全新6节点物理集群（无业务数据）划分为2套逻辑集群的操作。如果物理集群已有业务数据，请参见[教程：已有数据的物理集群转换逻辑集群](https://support.huaweicloud.com/mgtg-dws/dws_01_7251.html)操作。
#### 视频介绍
<video controls="controls" preload="none" id="object440654395912" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/dws-video/1725847152530792010.mp4" title="新物理集群划分为两个逻辑集群并进行跨集群查询" poster="https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002402904609.png" height="308.0000" width="600.0000"></video>
#### 前提条件
参见[创建DWS存算一体集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0019.html)章节创建6个节点的集群。
#### 划分逻辑集群
1. 在集群列表页面，单击指定集群名称进入集群详情页面，在上侧导航栏单击**"逻辑集群"**。
2. 进入逻辑集群页面，单击**"添加逻辑集群"** ，从右侧勾选1个主机环（3个节点）到左侧列表中，并输入逻辑集群名称lc1，单击**"确定"** 。
   
   等待约2分钟，逻辑集群添加成功。
   
   
3. 重复以上步骤，划分第二套逻辑集群lc2。
 
#### 创建逻辑集群关联用户并跨逻辑集群查询数据
1. 以系统管理员dbadmin连接数据库，执行以下SQL语句查看逻辑集群创建成功。 
   ```
   SELECT group_name FROM PGXC_GROUP;
   ```
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225624.png)
   
   
2. 创建两个用户u1和u2，分别关联逻辑集群lc1和逻辑集群lc2。 
   ```
   CREATE USER u1  NODE GROUP "lc1" password '{password}';
   CREATE USER u2  NODE GROUP "lc2" password '{password}';
   ```
   
   
3. 切换到用户u1，创建表t1，并插入数据。 
   ```
   SET ROLE u1 PASSWORD '{password}';
   CREATE TABLE u1.t1 (id int);
   INSERT INTO u1.t1 VALUES (1),(2);
   ```
   
   
4. 切换到用户u2，创建表t2，并插入数据。 
   ```
   SET ROLE u2 PASSWORD '{password}';
   CREATE TABLE u2.t2 (id int);
   INSERT INTO u2.t2 VALUES (1),(2);
   ```
   
   
5. 同时使用u2查询u1.t1表。返回结果提示没有权限。 
   ```
   SELECT * FROM u1.t1;
   ```
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225628.png "点击放大")
   
   
   
6. 切换回系统管理员dbadmin，查询表u1.t1和u2.t2分别创建到了集群lc1和lc2中，分别对应企业的两块业务，实现了基于逻辑集群的数据隔离。 
   ```
   SET ROLE dbadmin PASSWORD '{password}';
   SELECT p.oid,relname,pgroup,nodeoids FROM pg_class p LEFT JOIN pgxc_class pg ON p.oid = pg.pcrelid WHERE p.relname = 't1';
   SELECT p.oid,relname,pgroup,nodeoids FROM pg_class p LEFT JOIN pgxc_class pg ON p.oid = pg.pcrelid WHERE p.relname = 't2';
   ```
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617625399.png "点击放大")
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225626.png "点击放大")
   
   
7. 将逻辑集群lc1的访问权限授予用户u2，同时将SCHEMA u1访问权限、表u1.t1访问权限授予用户u2。 
   划分逻辑集群后，相当于在原来物理集群的基础上，再增加一层逻辑集群权限隔离。所以跨逻辑集群访问数据，首先要授权用户有逻辑集群的NODE GROUP层权限，其次是SCHEMA权限，最后是单张表TABLE权限。如果没有授予逻辑集群的权限，会提示类似permission denied for node group xx的错误信息。
   ```
   GRANT usage ON NODE GROUP lc1 TO u2;
   GRANT usage ON SCHEMA u1 TO u2;
   GRANT select ON TABLE u1.t1 TO u2;
   ```
   
   
8. 再次切换到u2用户，查询u1.t1表，查询成功，逻辑集群既实现了数据隔离，又可以在用户授权后进行跨逻辑集群访问。 
   ```
   SET ROLE u2 PASSWORD '{password}';
   SELECT * FROM u1.t1;
   ```
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587065714.png)
   
   
 
