MOJ 서비스의 DB 접근 권한

Scoring Server

테이블명 읽기 권한 쓰기 권한
Language O X
Problem O X
Submission O X
Testcase O X

API Server

테이블명 읽기 권한 쓰기 권한
Language O O
Problem O O
Submission O O
Testcase O O
Example O O
Result O O
State O O
User O O

⇒ 각 서버의 역할에 따라 DB 접근 권한을 다르게 부여하는 작업이 필요하다. 따라서 DB 사용자를 나눠 각 사용자마다 접근 권한을 다르게 주어야 한다.

DB 접근 권한 주기

TypeORM으로 PSQL 접속

TypeORM으로 PSQL 접속

// app.module.ts

TypeOrmModule.forRootAsync({
    imports: [ConfigModule],
    useFactory: (configService: ConfigService) => ({
      type: 'postgres',
      host: configService.get('POSTGRESQL_HOST'),
      port: +configService.get('POSTGRESQL_PORT'),
      username: configService.get('POSTGRESQL_USERNAME'),
      password: configService.get('POSTGRESQL_PASSWORD'),
      database: configService.get('POSTGRESQL_DATABASE'),
      autoLoadEntities: true,
      synchronize: true,
      namingStrategy: new SnakeNamingStrategy(),
      logging: ['query'],
    }),
    inject: [ConfigService],
  }),