[SQL] 주요 RDBMS별 사용자 권한 확인 방법 정리

kt·2025년 3월 10일

접속한 계정이 어떤 권한을 가지고 있는지 확인할 수 있는 방법을 정리해 보겠습니다.

MSSQL

  • 현재 사용자 권한이 sysadmin인지 확인

    SELECT IS_SRVROLEMEMBER('sysadmin');
    (반환값이 1이면 sysadmin 권한이 있는 것이고, 0이면 없는 것)

  • 현재 사용자가 속한 모든 서버 역할 확인

    SELECT r.name
    FROM sys.server_role_members m
    JOIN sys.server_principals r ON m.role_principal_id = r.principal_id
    JOIN sys.server_principals u ON m.member_principal_id = u.principal_id
    WHERE u.name = SYSTEM_USER;


Oracle

  • 현재 사용자 확인

    SELECT USER FROM DUAL;

  • 현재 사용자의 역할 확인

    SELECT granted_role
    FROM user_role_privs;

  • 현재 사용자의 시스템 권한 확인

    SELECT privilege
    FROM user_sys_privs;

  • DBA 역할 여부 확인 (관리자 권한 확인)

    SELECT 'YES'
    FROM user_role_privs
    WHERE granted_role = 'DBA';


MySQL/MariaDB

  • 현재 사용자 확인

    SELECT CURRENT_USER();

  • 현재 사용자의 권한 확인

    SHOW GRANTS FOR CURRENT_USER();

  • 특정 사용자의 권한 확인 (관리자만 가능)

    SHOW GRANTS FOR 'username'@'hostname';


PostgreSQL

  • 현재 사용자 확인

    SELECT current_user;

  • 현재 사용자가 속한 역할(role) 확인

    SELECT r.rolname
    FROM pg_roles r
    JOIN pg_auth_members m ON m.roleid = r.oid
    JOIN pg_roles u ON m.member = u.oid
    WHERE u.rolname = current_user;

  • 현재 사용자가 superuser인지 확인

    SELECT usesuper
    FROM pg_user
    WHERE usename = current_user;

profile
기록하는 블로그

0개의 댓글