DB 권한 관리 SQL (GRANT)

사용자 생성·GRANT·REVOKE

DB
권한

🔒 이 도구는 입력한 데이터를 서버로 전송하지 않습니다. 모든 변환·계산은 여러분의 브라우저 안에서만 실행되므로 민감한 데이터도 안전하게 처리할 수 있습니다.

DB 사용자·권한 관리 SQL

새 계정을 만들고 특정 테이블에 SELECT만 주거나, 권한을 회수하고, 현재 부여된 권한을 확인하는 작업은 DB마다 문법이 제각각입니다. 이 도구는 사용자 생성 → 권한 부여(GRANT) → 회수(REVOKE) → 조회까지 DB별 정확한 SQL을 만들어 줍니다.

DB별 핵심 차이

  • OracleCREATE 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 + DB CREATE USER ... FOR LOGIN 2단계. 조회는 sp_helprotect.
  • PostgreSQLCREATE USER u WITH PASSWORD 'pw';. 스키마·DB 레벨 권한(GRANT USAGE ON SCHEMA, GRANT CONNECT ON DATABASE)을 함께 챙겨야 합니다.

사용 방법

  1. DB와 작업(사용자 생성·GRANT·REVOKE·조회)을 고릅니다.
  2. 사용자·대상·권한(SELECT/INSERT/UPDATE/DELETE/ALL)을 지정합니다.
  3. 생성된 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에 연결하거나 실행하지 않습니다. 내용을 검토한 뒤 직접 실행하세요.