## Gauss数据库权限识别项目
使用postgresql驱动和MyBatis连接OpenGauss,识别数据库三权分立的管理员权限,识别用户或角色对数据库和表格的操作权限,识别所有用户列表。
![](https://cdn.jsdelivr.net/gh/52chen/imagebed2023@main/image-20230918165423593.png)
**使用方法**
通过git下载源码
导入`/lib/opengauss-jdbc-3.1.0.jar /lib/postgresql.jar ` jar包,
更新Maven依赖
更新数据库链接信息
**软件需求**
- JDK 8
- SpringBoot 2.4.2
- Maven
- mybatis-plus 3.5.3
- LayUI
### 2.1 工程布局
```sh
F:\项目\gaussTest>tree /F
卷 work 的文件夹 PATH 列表
卷序列号为 D4FA-828F
F:.
│ .gitignore
│ pom.xml
│ README.md
│
├─lib
│ └─openGauss-3.1.0-JDBC
│ opengauss-jdbc-3.1.0.jar
│ postgresql.jar
│ README_cn.md
│ README_en.md
│
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─mcx
│ │ │ └─gaussprivilege
│ │ │ │ GaussTestApplication.java
│ │ │ │
│ │ │ ├─controller
│ │ │ │ AuditAdminController.java
│ │ │ │ CreateRoleAdminController.java
│ │ │ │ PgUserController.java
│ │ │ │ RolDatPrivilegeController.java
│ │ │ │ RolTablePrivilegeController.java
│ │ │ │ SysAdminController.java
│ │ │ │ TableController.java
│ │ │ │ TestController.java
│ │ │ │
│ │ │ ├─dao
│ │ │ │ AuditAdminMapper.java
│ │ │ │ CreateRoleAdminMapper.java
│ │ │ │ PgUserMapper.java
│ │ │ │ RolDatPrivilegeMapper.java
│ │ │ │ RolTablePrivilegeMapper.java
│ │ │ │ SysAdminMapper.java
│ │ │ │ TableMapper.java
│ │ │ │ TbClassMapper.java
│ │ │ │
│ │ │ ├─entity
│ │ │ │ PgUser.java
│ │ │ │ RolDatPrivilege.java
│ │ │ │ RoleAdmin.java
│ │ │ │ RolTablePrivilege.java
│ │ │ │ Table.java
│ │ │ │ TbClass.java
│ │ │ │
│ │ │ ├─service
│ │ │ │ AuditAdminService.java
│ │ │ │ CreateRoleAdminService.java
│ │ │ │ PgUserService.java
│ │ │ │ RolDatPrivilegeService.java
│ │ │ │ RolTablePrivilegeService.java
│ │ │ │ SysAdminService.java
│ │ │ │ TableService.java
│ │ │ │ TbClassService.java
│ │ │ │
│ │ │ └─test
│ │ │ jdbcDriverTest.java
│ │ │
│ │ └─resources
│ │ │ application.properties
│ │ │ GaussApiTest.http
│ │ │
│ │ ├─JDBCLIB
│ │ │ opengauss-jdbc-3.1.0.jar
│ │ │ postgresql.jar
│ │ │
│ │ └─static
│ │ │ index.html
│ │ │
│ │ ├─image
│ │ │ 三权分立-安全.drawio.svg
│ │ │ 三权分立-审计.drawio.svg
│ │ │ 三权分立-系统.drawio.svg
│ │ │ 三权分立.drawio
│ │ │ 三权分立.png
```
### 2.2 项目配置文件
pom.xml文件如下
```xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>gaussTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gaussTest</name>
<description>gaussTest</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.4.2</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.mcx.gaussprivilege.GaussTestApplicationcom.mcx.gaussprivilege.GaussTestApplication</mainClass>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
```
手动导入postgresql和opengauss的jar包。
![image-20230918171808500](https://cdn.jsdelivr.net/gh/52chen/imagebed2023@main/image-20230918171808500.png)
application.properties
```properties
server.port=8080
#spring.datasource.url=jdbc:postgresql://103.91.210.232:11343/db_department
spring.datasource.url=jdbc:postgresql://192.168.161.18:5432/db_department
spring.datasource.username=admin_department
spring.datasource.password=OpenGauss@123
spring.datasource.driver-class-name=org.postgresql.Driver
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus.configuration.map-underscore-to-camel-case=true
```
### 2.3 创建实