데이터베이스 조회 권한 신청

Chapter 4. 개발 권한 받기

by 고코더

"DB에 어떻게 접속하는 거지?"

ChatGPT Image 2026년 1월 23일 오전 08_52_57.png


개발 서버 계정도 받았다. 이제 슬랙에서 팀장님이 또 메시지를 보낸다.

"DB 조회 권한 신청하셨나요? 개발 DB 접속해서 테이블 구조 먼저 파악해보세요."


'DB 권한? 또 권한 신청이야? 근데... DB는 어떻게 보는 거지?'


학교 때는 localhost에 MySQL 깔아서 쓰면 됐는데, 회사는 다른가 보다. 검색창을 연다. "회사 DB 접속 방법" 블로그 글들이 쏟아진다. DBeaver, Workbench, 보안 정책, VPN... 단어는 낯익은데 막상 어떻게 시작해야 할지 모르겠다.


'신청서는 어디 있지? 전산팀? 인프라팀? 아니면 DBA팀? 그리고 DB 클라이언트는 뭘 쓰지? 맥에서는 뭐가 좋지?'


슬랙을 보니 다른 개발자가 "SELECT * FROM users WHERE..." 같은 쿼리를 공유하고 있다. 다들 DB를 보고 있구나.


'나도... 빨리 DB 권한 받아야 하는데...'


걱정하지 마라. DB 조회 권한 받는 건 생각보다 간단하다. 여기서는 왜 DB 권한이 필요한지부터, 신청 방법, DB 클라이언트 도구 설치, 접속 테스트, 그리고 스키마 파악까지 차근차근 알아보자.



DB 조회 권한이 왜 필요한가?


데이터 구조 파악을 위해

테이블이 어떻게 설계되어 있는지

컬럼 이름과 데이터 타입 확인

테이블 간 관계(Foreign Key) 이해


실제 데이터 확인을 ㅜ이해

API 응답 값이 맞는지 검증

버그 원인 추적 (왜 이 값이 나왔지?)

테스트 데이터 확인


쿼리 테스트를 하기 위해

복잡한 쿼리 작성 전 미리 실행

성능 확인 (Explain Plan)

데이터 정합성 체크


문제 해결을 위한

장애 발생 시 데이터 상태 확인

사용자 문의 응대 (이 주문이 왜 안 보이죠?)

데이터 마이그레이션 검증


실전 팁

신입은 보통 개발 DB만 접근 가능하다. 운영 DB는 시니어나 DBA만 접근하는 경우가 많다. 이건 당연한 보안 조치다. 실수로 운영 DB에서 'DELETE' 실행한다면 한다면... 상상하기 싫다. 짐싸서 바로 퇴사하는게 현명할 지도



DB 환경 종류 이해하기

회사는 보통 여러 개의 DB 환경을 운영한다.


로컬 DB (Local)

내 노트북에서 실행

Docker로 띄우거나 직접 설치

혼자만 사용, 다른 사람에게 영향 없음


개발 DB (Dev)

개발자들이 공동으로 사용

최신 기능 테스트용 데이터

자주 초기화될 수 있음


테스트 DB (Staging)

QA 팀이 테스트하는 환경

운영과 거의 동일한 데이터 구조

배포 전 최종 검증


운영 DB (Production)

실제 사용자 데이터

절대 함부로 건드리면 안 됨

읽기 전용 접근도 제한적


실전 팁

신입은 개발 DB 조회 권한부터 받자. 운영 DB는 나중에 필요할 때 추가 신청하면 된다. 일부 회사는 운영 DB를 아예 안 주기도 한다. 대신 BI 도구나 읽기 전용 복제본(Replica)을 제공한다.


에피소드

신입사원 시절 실수를 밝히자면 개발 DB에서 테스트하려고 `UPDATE` 쿼리를 짰다. 근데 DBeaver에 연결이 두 개 있었다. 하나는 개발 DB, 하나는... 운영 DB였다. 나는 탭을 잘못 클릭했다. 운영 DB 탭에서 `UPDATE users SET status = 'test'` 쿼리를 실행하려던 순간, 선배 개발자가 뒤에서 "잠깐!" 하고 소리쳤다.


손이 떨렸다. 상단을 보니 "production"이라고 써 있었다. 시니어가 웃으면서 "운영 DB는 읽기 전용 권한만 있어서 다행이네요. 안 그랬으면 큰일 날 뻔했어요" 하셨다. 그날 이후로 나는 쿼리 실행 전 상단 DB 이름을 세 번씩 확인한다.



DB 조회 권한 신청하기


누구에게 신청하나?

회사마다 다르지만 보통 이 중 하나다.

전산팀 (IT팀)

인프라팀 (DevOps팀)

DBA팀 (Database Administrator)

시니어 개발자 (소규모 회사)


신청 방법 확인하기

팀장이나 멘토에게 물어보기
"DB 조회 권한은 어떻게 신청하나요?"


사내 위키 검색
"DB 권한 신청" 키워드로 검색 온보딩 문서에 보통 나와 있음


전산팀에 직접 문의
슬랙이나 이메일로 "개발 DB 조회 권한 신청 방법 문의드립니다"


일반적인 신청 절차

1단계: 신청서 작성

이름, 부서, 사번

접근이 필요한 DB (개발 DB, 테스트 DB)

사용 목적 (개발, 테스트, 분석 등)

읽기 전용인지, 쓰기 권한도 필요한지


2단계: 승인 대기

보통 당일~1일 소요

팀장 승인 필요한 경우도 있음

보안 교육 이수 필요한 회사도 있음


3단계: 접속 정보 수령

이메일이나 슬랙으로 전달

DB 호스트 주소

포트 번호

데이터베이스 이름

계정명과 비밀번호 (또는 인증 방식)


신청 메일 예시

제목: 개발 DB 조회 권한 신청 안녕하세요, 개발팀 신입 김개발입니다.

개발 업무를 위해 개발 DB 조회 권한이 필요하여 연락드립니다.


- 이름: 김개발

- 부서: 개발팀

- 사번: 2024001

- 접근 필요 DB: 개발 DB (dev-database)

- 사용 목적: 서비스 개발 및 데이터 구조 파악

- 권한: 읽기 전용 (SELECT) 확인 부탁드립니다.


감사합니다.


실전 팁

처음엔 읽기 전용(Read-Only) 권한만 요청하자. 나중에 정말 필요하면 쓰기 권한을 추가하자.


DB 클라이언트 도구 설치하기

DB에 접속하려면 클라이언트 프로그램이 필요하다. 주요 도구 3가지를 알아보자.


DBeaver (추천)

image.png

장점

무료, 오픈소스

모든 OS 지원 (윈도우, 맥, 리눅스)

거의 모든 DB 지원 (MySQL, PostgreSQL, Oracle, MS SQL 등)

가볍고 빠름

ER 다이어그램 자동 생성


단점

UI가 약간 투박함

고급 기능은 유료(Pro 버전)


설치 방법

dbeaver.io 접속

"Download" 클릭

Community Ed


MySQL Workbench

image.png

장점

MySQL 공식 도구

완전 무료

모델링 기능 강력

ERD 작성 편리


단점

MySQL/MariaDB만 지원

다른 DB 쓰는 회사면 못 씀

좀 무겁고 느림


설치 방법

mysql.com/products/workbench 접속

운영체제에 맞게 다운로드

설치


DataGrip (유료, 추천)

image.png


장점

JetBrains 제품 (IntelliJ 만든 회사)

UI 세련됨

자동완성 최강

리팩토링 기능

모든 DB 지원


단점

유료

회사에서 라이선스 제공하는지 확인 필요


설치 방법

jetbrains.com/datagrip 접속

30일 무료 체험 다운로드

회사 라이선스 있으면 적용


어떤 걸 써야 할까?


회사에서 라이선스 제공
-> DataGrip 쓰자 (최고의 성능)


MySQL만 쓰는 회사
-> MySQL Workbench도 괜찮음


여러 DB 쓰거나, 무료 원함
-> DBeaver 강력 추천


실전 팁

필자는 DataGrip을 쓴다. 회사에서 JetBrains 라이선스를 제공해서 IntelliJ랑 같이 쓰고 있다. 자동완성이 정말 편하다. 하지만 신입사원 단계에서는 DBeaver도 충분히 훌륭하다. 개인적으로는 회사에서 DataGrip 라이선스가 없다면 개인 구매를 통해서라도 사용하길 강력 추천한다.


에피소드

처음 DBeaver를 설치했을 때 솔직히 실망했다. UI가 투박했다. '이게 2024년 프로그램 맞나?' 싶었다. 학교 때 쓰던 MySQL Workbench가 더 예뻐 보였다. 그런데 일주일 쓰다 보니 생각이 바뀌었다. PostgreSQL 접속해야 할 때도 같은 프로그램에서 바로 됐다. Oracle도 됐다. MongoDB도 됐다. '아, 그래서 다들 이거 쓰는구나.' DataGrip은 나중에 회사에서 라이선스를 받고 써봤는데, 자동완성이 정말 편했다. 하지만 개인 돈으로 사기엔 부담스러웠다. 만약 회사에서 안 준다면 DBeaver로도 충분히 행복하게 일할 수 있다.


처음으로 데이터베이스 접속하기

클라이언트 도구도 설치했고, 접속 정보도 받았다. 이제 진짜로 연결해보자.


DBeaver로 접속하기


1단계: 새 연결 만들기

DBeaver 실행

좌측 상단 "New Database Connection" 클릭 (플러그 아이콘)

DB 종류 선택 (MySQL, PostgreSQL 등)


2단계: 접속 정보 입력

Host: dev-db.company.com (전산팀이 준 주소)

Port: 3306 (MySQL 기본값, DB마다 다름)

Database: company_dev

Username: jhlee

Password: ****


3단계: 드라이버 다운로드

처음 연결하면 드라이버 다운로드 묻는다

"Download" 클릭


4단계: Test Connection

"Test Connection" 버튼 클릭

"Connected" 메시지 확인

성공하면 "Finish" 클릭


5단계: 연결 완료

좌측 Database Navigator에 연결 추가됨

더블클릭하면 테이블 목록 보임


MySQL Workbench로 접속하기

1단계: 새 연결 추가

MySQL Workbench 실행

"MySQL Connections" 옆 "+" 클릭


2단계: 접속 정보 입력

Connection Name: 회사 개발 DB (구분용 이름)

Hostname: dev-db.company.com

Port: 3306

Username: jhlee

Password: "Store in Keychain" 클릭 후 입력


3단계: Test Connection

"Test Connection" 버튼

비밀번호 재입력

"Successfully connected" 확인


4단계: 연결 저장

"OK" 클릭

메인 화면에 연결 아이콘 생성됨


DataGrip으로 접속하기

1단계: 새 Data Source 추가

DataGrip 실행

좌측 상단 "+" 클릭

Data Source -> MySQL (또는 해당 DB)


2단계: 접속 정보 입력

Host: dev-db.company.com

Port: 3306

Database: company_dev

User: jhlee

Password: ****


3단계: 드라이버 다운로드

"Download missing driver files" 클릭


4단계: Test Connection

하단 "Test Connection" 클릭

"Succeeded" 확인

"OK" 클릭


첫 쿼리 실행하기

접속에 성공했다. 이제 시스템 영향이 없는 쿼리를 실행해보자.

SELECT VERSION();

DB 버전이 출력된다. MySQL이라면 "8.0.35-MySQL" 같은 게 나온다.


아쉬우니 한번도 실행해보자 이번에는 현재 시간 확인하는 쿼리다.

SELECT NOW();

서버 시간이 출력된다.


실전 팁

첫 접속 시 테이블 목록이 안 보인다면? 좌측에서 스키마(Schema) 또는 데이터베이스를 펼쳐봐야 한다. 트리 구조로 되어 있어서 클릭해서 확장해야 보인다.



DB 사용 시 주의사항

신입사원이 처음 데이터베이스에 접속했을때 절대 하지 말아야 할 행동을 정리해봤다.


운영 DB에서 UPDATE/DELETE

읽기 전용 권한만 있어도 조심

실수로 운영 DB 붙었는지 항상 확인

상단에 DB 이름 표시되는지 체크


비밀번호, 개인정보 복사

유저 테이블에 이메일, 전화번호 있음

슬랙에 붙여넣지 말 것

스크린샷 찍을 때 개인정보 가리기


무거운 쿼리 마음대로 실행

JOIN 10개 거는 쿼리

인덱스 없는 컬럼으로 WHERE

다른 개발자들도 쓰는 DB라서 부하 주면 안 됨


서버 시간대 변경

SET time_zone = ... 같은 세션 변수는 괜찮지만

전역 설정 변경은 절대 금지


쿼리 실행 전 확인

어떤 DB에 접속했는지 (개발? 운영?)

LIMIT 붙였는지

WHERE 조건 제대로 썼는지


결과 예상하기

이 쿼리는 몇 건 나올 것 같은지

시간이 오래 걸릴 것 같으면 DBA에게 물어보기


실전 팁

쿼리 실행 전에 상단 툴바를 보자. DBeaver나 DataGrip은 현재 접속 중인 DB 이름을 표시한다. "dev-database"라고 나오면 개발 DB, "production"이라고 나오면... 일단 멈추고 확인하자.


자주 발생하는 문제 해결

"Access denied for user"

원인

비밀번호가 틀림

계정이 아직 생성 안 됨

IP 제한 (VPN 필요)


해결

비밀번호 재확인

전산팀에 계정 생성 확인

VPN 연결 후 재시도


"Unknown database"

원인

데이터베이스 이름 오타

권한이 해당 DB에 없음


해결

DB 이름 정확히 입력

SHOW DATABASES; 쿼리로 목록 확인

전산팀에 권한 재확인


"Connection timed out"

원인

방화벽 차단

VPN 미연결

서버 다운


해결

VPN 연결 확인

회사 네트워크 연결 확인

전산팀에 서버 상태 문의


테이블 목록이 안 보임

원인

스키마를 펼치지 않음

권한이 없는 테이블들


해결

좌측 트리 구조에서 스키마 클릭해서 펼치기

SHOW TABLES; 쿼리 실행

전산팀에 권한 확인


에피소드

첫 주에 가장 많이 본 에러는 "Access denied"였다. 비밀번호를 다섯 번 확인했는데도 안 됐다. 전산팀에 메일 보냈다. "VPN 연결하셨나요?" 답장이 왔다. 아... VPN. 까먹었다. VPN 켜고 다시 접속했다. 됐다. 두 번째로 많이 본 에러는 "Connection timeout"이었다. 집에서 접속하려는데 계속 실패했다. 30분을 헤맸다. 슬랙에 물어봤더니 "회사 네트워크에서만 접속 가능해요. VPN 써야 해요" 답이 왔다. 아... 그렇구나. 그날 이후로 나는 집에서 일할 때 제일 먼저 VPN을 켠다. 이제는 자동이다.



신입 개발자 데이터베이스 조회도 가능하다.


조심스럽게 회원 테이블을 조회 했다. 그리고 오늘 가입한 회원으로 조건을 걸어 보았다. 5명의 회원이 나온다. 이메일, 이름, 가입 일시가 보인다.


'진짜... 실제 데이터네.'


학교 때는 더미 데이터였다. 이름도 "test1", "test2" 같은 거였다. 근데 지금 보이는 건 진짜 사람들이다. 진짜 이메일 주소다. 문득 책임감이 느껴진다.


'이 데이터를 함부로 다루면 안 되겠구나.'


슬랙에 팀장님이 메시지를 보냈다.

"DB 접속 됐나요? users 테이블 구조 파악되면 알려주세요."


들뜬 마음에 답장을 한다..

"네, 접속 됐습니다. users 테이블 파악해보겠습니다."


팀장님이 답장한다.

"좋아요! 내일 오전에 주요 테이블들 함께 보면서 설명드릴게요."


미소가 지어진다. 하나씩, 차근차근. 이렇게 개발자가 되어가는구나.

DBeaver 화면을 내려다본다. 좌측에 테이블 목록들이 쭉 나열되어 있다.


'내일은... 저 테이블들을 다 이해하게 되겠지?'

기대된다. 조금 두렵기도 하지만, 동시에 설렌다.


이제 진짜 회사 데이터베이스에 접속할 수 있는 개발자가 됐다.

이전 13화개발 서버 접속 계정 받기