DB 권한 관리 SQL (GRANT)
사용자 생성·GRANT·REVOKE
🔒 이 도구는 입력한 데이터를 서버로 전송하지 않습니다. 모든 변환·계산은 여러분의 브라우저 안에서만 실행되므로 민감한 데이터도 안전하게 처리할 수 있습니다.
DB 사용자·권한 관리 SQL
새 계정을 만들고 특정 테이블에 SELECT만 주거나, 권한을 회수하고, 현재 부여된 권한을 확인하는 작업은 DB마다 문법이 제각각입니다. 이 도구는 사용자 생성 → 권한 부여(GRANT) → 회수(REVOKE) → 조회까지 DB별 정확한 SQL을 만들어 줍니다.
DB별 핵심 차이
- Oracle —
CREATE USER u IDENTIFIED BY pw;후 접속용GRANT CONNECT, RESOURCE TO u;필요. 권한 조회는user_tab_privs·dba_role_privs. - MySQL — 사용자는
'u'@'%'처럼 호스트까지 지정. 권한 변경 후FLUSH PRIVILEGES;. 대상은db.table또는db.*. 조회는SHOW GRANTS FOR 'u'@'%';. - SQL Server — 서버
CREATE LOGIN+ DBCREATE USER ... FOR LOGIN2단계. 조회는sp_helprotect. - PostgreSQL —
CREATE USER u WITH PASSWORD 'pw';. 스키마·DB 레벨 권한(GRANT USAGE ON SCHEMA,GRANT CONNECT ON DATABASE)을 함께 챙겨야 합니다.
사용 방법
- DB와 작업(사용자 생성·GRANT·REVOKE·조회)을 고릅니다.
- 사용자·대상·권한(SELECT/INSERT/UPDATE/DELETE/ALL)을 지정합니다.
- 생성된 SQL을 검토 후 실행합니다.
주의점
- MySQL은 GRANT/REVOKE 후
FLUSH PRIVILEGES;를 잊지 마세요(계정 생성/삭제 시 특히). - Oracle의
RESOURCE, PostgreSQL의ALL PRIVILEGES는 넓은 권한이니 최소권한 원칙으로 필요한 것만 부여하세요. - 운영 DB에서 권한 변경은 되돌리기 어려우니 반드시 검토 후 실행하세요.
자주 묻는 질문
MySQL에서 사용자 만들고 권한 주는 법은?
CREATE USER 'u'@'%' IDENTIFIED BY 'pw'; 로 만들고 GRANT SELECT ON db.* TO 'u'@'%'; 후 FLUSH PRIVILEGES; 를 실행합니다. 호스트('%'=모든 IP)와 FLUSH가 핵심입니다.
SQL Server는 왜 CREATE LOGIN과 CREATE USER를 둘 다 하나요?
LOGIN은 서버 접속 계정, USER는 특정 데이터베이스 안의 사용자입니다. 서버에 로그인한 뒤 해당 DB를 쓰려면 두 개를 각각 만들어 매핑해야 합니다.
부여된 권한을 확인하려면?
MySQL은 SHOW GRANTS FOR, Oracle은 user_tab_privs/dba_role_privs, SQL Server는 sp_helprotect, PostgreSQL은 \du 또는 information_schema.role_table_grants로 조회합니다.
권한을 회수하려면?
REVOKE 문을 씁니다. 예: REVOKE SELECT ON t FROM u; MySQL은 뒤에 FLUSH PRIVILEGES;를 붙이세요. 이 도구의 REVOKE 작업이 DB별로 생성합니다.
생성한 SQL이 실행되나요?
아니요. 텍스트만 생성하며 DB에 연결하거나 실행하지 않습니다. 내용을 검토한 뒤 직접 실행하세요.