[Fortify] SSC Database 셋팅방법 정리

######################################################################
#
# MySQL
#
######################################################################
설정 내용을 적용하기 전에 MySQL 서비스를 중지하고
DB 디렉토리에서 ib_logfile0, ib_logfile1 파일을 삭제해야 한다.

■MySQL DB 초기화 방법:
mysqld --initialize-insecure --user=mysql
mysqld --install

1. my.cnf 수정 후 MySQL 재 시작
-- ----------------------------------------------
-- for MySQL Community Server 8.0.27
-- ----------------------------------------------
[mysqld]
basedir="C:\PortableApps\mysql-8.0.27-winx64"
datadir="C:\PortableApps\mysql-8.0.27-winx64\data"
socket="C:\PortableApps\mysql-8.0.27-winx64\data\mysql.sock"
log-error="C:\PortableApps\mysql-8.0.27-winx64\data\mysqld.log"
pid-file="C:\PortableApps\mysql-8.0.27-winx64\data\mysqld.pid"
port=3306
character-set-client-handshake=FALSE
character-set-server=utf8mb3
collation-server=utf8mb3_general_ci
default_storage_engine=innodb
innodb_buffer_pool_size=16G
innodb_file_per_table=true
innodb_lock_wait_timeout=300
innodb_log_file_size=4G
log-bin=MIXED
max_allowed_packet=1G
max_connections=65535
sql_mode=TRADITIONAL

[client]
port=3306
default-character-set=utf8mb3

[mysql]
default-character-set=utf8mb3

-- ----------------------------------------------
-- for MySQL 5.7 or MariaDB 10.x
-- ----------------------------------------------
[mysqld]
basedir="D:/mysql/mysql-5.7.31-winx64"
datadir="D:/mysql/db"
port=3306
binlog_format=MIXED
character-set-client-handshake=FALSE
character-set-server=utf8
collation-server=utf8_general_ci
default_storage_engine=innodb
innodb_buffer_pool_size=16G
innodb_file_format=Barracuda
innodb_file_per_table=true
innodb_large_prefix=1
innodb_lock_wait_timeout=300
innodb_log_file_size=4G
max_allowed_packet=1G
query_cache_size=128M
query_cache_type=1
sql_mode=TRADITIONAL

-- --------------------------------------------------------
-- DB 추가 SQL
-- --------------------------------------------------------
CREATE DATABASE db_ssc_2222 CHARACTER SET utf8mb3 COLLATE utf8mb3_bin;

-- --------------------------------------------------------
-- DB 사용자 추가 SQL (MySQL 5.x or MariaDB)
-- --------------------------------------------------------
GRANT ALL PRIVILEGES ON db_ssc_2222.* TO 'u_ssc'@'localhost' IDENTIFIED BY '<PASSWORD>' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON db_ssc_2222.* TO 'u_ssc'@'%' IDENTIFIED BY '<PASSWORD>' WITH GRANT OPTION;
FLUSH PRIVILEGES;

-- --------------------------------------------------------
-- DB 사용자 추가 SQL (MySQL 8.x)
-- --------------------------------------------------------
CREATE USER 'u_ssc'@'%' IDENTIFIED BY '<PASSWORD>';
GRANT ALL PRIVILEGES ON db_ssc_2222.* TO 'u_ssc'@'%';
FLUSH PRIVILEGES;

-- --------------------------------------------------------
-- STORED FUNCTION과 TRIGGER 생성 강제제약 해제 (필수 !!)
-- --------------------------------------------------------
SET GLOBAL LOG_BIN_TRUST_FUNCTION_CREATORS = ON;

-- --------------------------------------------------------
-- InnoDB에서 767바이트 이상의 키를 생성할 수 있게 설정 (MariaDB)
-- --------------------------------------------------------
SET GLOBAL INNODB_LARGE_PREFIX=ON;
SET GLOBAL INNODB_FILE_FORMAT=BARRACUDA;

-- --------------------------------------------------------
-- 테이블 생성
-- --------------------------------------------------------
mysql -u u_ssc -p<PASSWORD> db_ssc_2222 < create-tables.sql

-- ----------------------------------------------------------------------------

-- JDBC 연결 옵션:
jdbc:mysql://10.10.10.105:3306/db_ssc_2222?connectionCollation=utf8mb3_bin&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&useSSL=false


######################################################################
#
# Oracle
#
######################################################################
명령행 프롬프트에서 아래의 명령으로 sqlplus로 진입한다.
sqlplus "system/manager as sysdba"

-- ----------------------------------------------------------------------------

-- DB 생성
ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;
CREATE TABLESPACE ts_ssc_2222 DATAFILE 'C:\app\Administrator\oradata\orcl\ts_ssc_2222.dbf' SIZE 2M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE USER u_ssc IDENTIFIED BY "<PASSWORD>";
ALTER USER u_ssc DEFAULT TABLESPACE ts_ssc_2222;
ALTER USER u_ssc TEMPORARY TABLESPACE TEMP;
GRANT CONNECT, DBA, RESOURCE TO u_ssc;

-- ----------------------------------------------------------------------------

-- 사용자 비밀번호 변경
ALTER USER u_ssc IDENTIFIED BY "<PASSWORD>";

-- ----------------------------------------------------------------------------

-- 샥제
-- Oracle 12c의 이전버전 호환을 위한 설정
ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;
DROP USER u_ssc CASCADE;
DROP TABLESPACE ts_ssc_2222 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

-- ----------------------------------------------------------------------------

-- JDBC URL
jdbc:oracle:thin:@10.10.10.105:1521:orcl


######################################################################
#
# Microsoft SQL
#
######################################################################
※SSMS(SQL Server Management Studio)에서 진행

1. WAS 시작 전 JDK 11에서 <JDK Dir>/conf/security/java.security의 아래 부분을 편집한다.
  jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
      DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
      include jdk.disabled.namedCurves
  부분에서 TLSv1과 TLSv1.1 항목을 제거한다.

2. 데이터베이스 생성
  ①좌측트리메뉴-데이터베이스 > [↖팝업메뉴] > 새 데이터베이스
  ②좌측트리메뉴-일반 > 데이터베이스 이름(N): db_ssc_2222
  ③좌측트리메뉴-옵션 > 데이터 정렬(C): Korean_Wansung_CS_AS
  ④"확인" 버튼을 클릭하여 생성 진행

3. 사용자 추가
  ①좌측트리메뉴-보안 > 로그인 > [↖팝업메뉴] > 새 로그인
  ②좌측트리메뉴-일반 > 로그인 이름(N) : u_ssc
  ③좌측트리메뉴-일반 > ☑SQL Server 인증(S) > <PASSWORD> 입력
  ④좌측트리메뉴-일반 > □다음 로그인할 때 반드시 암호 변경
  ⑤좌측트리메뉴-서버 역할 > ☑public
  ⑥좌측트리메뉴-사용자 매핑 > 이 로그인으로 매핑된 사용자 > ☑db_ssc_2222
  ⑦좌측트리메뉴-사용자 매핑 > 데이터베이스 역할 멤버 자격: ☑db_owner, ☑public
  ⑧좌측트리메뉴-상태 > 데이터베이스 엔진 연결 권한 > ☑허용
  ⑨좌측트리메뉴-상태 > 로그인 > ☑허용
  ※오류가 발생할 경우
    USE db_ssc_2222;
    EXEC sp_change_users_login 'Auto_Fix', 'u_ssc';

3. JDBC 주소를 아래와 같이 입력한다.
  jdbc:sqlserver://10.10.10.105:1433;database=db_ssc_2222;connectionCollation=korean_wansung_cs_as;sendStringParametersAsUnicode=false
위로 스크롤