mysql은 간단하고 많이 해봐서 간단하게 설정으로 외부접속을 할 수 있었다.
CREATE USER 'MDBS'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON . TO 'MDBS'@'%';
FLUSH PRIVILEGES;

우선 내가 생성한 oracle docker에 접속한다.
docker exec -it oracle sqlplus / as sysdba
SELECT name FROM v$pdbs; 로 서비스명 확인

XEPDB1을 사용할 예정
스키마 소유자 계정(애플리케이션용) 만들기
CREATE USER MDBS IDENTIFIED BY "password";
기본 USERS 테이블스페이스에 용량 제한 없이
ALTER USER MDBS QUOTA UNLIMITED ON USERS;
접속/객체 생성에 필요한 최소 권한
GRANT CREATE SESSION TO MDBS;
GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE TO MDBS;
필요 시 계정 잠금 해제
ALTER USER MDBS ACCOUNT UNLOCK;

계정 생성
docker exec -it postgres psql -U testuser -d testdb -c "CREATE ROLE mdbs WITH LOGIN PASSWORD 'mdbs';"
데이터베이스 접속 권한 - testdb에 접속
docker exec -it postgres psql -U testuser -d testdb -c "GRANT CONNECT ON DATABASE testdb TO mdbs;"
스키마 사용 권한 (public 스키마 내 오브젝트 참조 가능)
docker exec -it postgres psql -U testuser -d testdb -c "GRANT USAGE ON SCHEMA public TO mdbs;"
기존 테이블에 대한 DML 권한 (SELECT/INSERT/UPDATE/DELETE)
docker exec -it postgres psql -U testuser -d testdb -c "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO mdbs;"
기존 시퀀스 사용 권한 (INSERT 시 시퀀스 NEXTVAL 등 사용)
docker exec -it postgres psql -U testuser -d testdb -c "GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO mdbs;"
앞으로 생성될 테이블의 기본 권한 설정 (자동으로 DML 권한 부여)
docker exec -it postgres psql -U testuser -d testdb -c "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO mdbs;"
앞으로 생성될 시퀀스의 기본 권한 설정 (자동으로 사용 권한 부여)
docker exec -it postgres psql -U testuser -d testdb -c "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO mdbs;"
비밀번호 변경 - 나는 사실 앞에 비밀번호를 잘못 설정해서 다시 바꿈
docker exec -it postgres psql -U testuser -d testdb -c "ALTER ROLE mdbs WITH PASSWORD '비밀번호 변경';"
번외. Postgre는 5432 port를 기본으로 쓴다. 그리고 나는 서버를 본가에 두고 설정을 다해둔 상태로 사용 중이다. 그래서 예전에 본가에 가서 포트포워딩을 미리 다 해두고왔다.
근데 Postgre Port를 안해두고 왔다. 그래서 혹시 몰라서 열어둔 Temp Port가 있다. 그래서 docker-compose.yml을 수정해서 다른 port로 접근하게 설정했다.

bash로 접근
docker exec -it mongo bash
mongo login
mongosh -u root -p 'password' --authenticationDatabase admin
외부 접속 user 생성
db.createUser({
user: "mdbs",
pwd: "password",
roles: [{ role: "readWrite", db: "appdb" }]//추후 변경
})
접속 확인
