SHOW DATABASE ROLES
SHOW DATABASE ROLES
SHOW DATABASE ROLES 명령은 지정한 데이터베이스의 모든 데이터베이스 역할(database role) 목록을 보여주는 명령이에요. 데이터베이스 역할은 데이터베이스 범위 내에서 권한을 그룹화하는 역할로, 이 명령으로 특정 데이터베이스의 역할들을 확인할 수 있어요.
출처: 문서
본문
이 명령은 지정한 데이터베이스의 모든 데이터베이스 역할을 나열해요.
중요: 현재 데이터베이스에 어떤 권한(예: USAGE)이라도 부여받은 활성 역할을 가진 사용자는 그 데이터베이스의 데이터베이스 역할을 나열할 수 있어요. 하지만 이것이 반드시 그 역할을 사용해 SQL 작업을 수행할 수 있다는 의미는 아니에요. 데이터베이스 역할을 사용하려면 먼저 사용자가 세션에서 활성화할 수 있는 계정 역할이나, 계층에서 더 낮은 계정 역할에 부여되어야 해요.
이것은 Discretionary Access Control(DAC)과 Role-Based Access Control(RBAC)의 일부예요. 자세한 내용은 Access Control 개요를 참고해요.
관련 명령: SHOW GRANTS, CREATE DATABASE ROLE, ALTER DATABASE ROLE, DROP DATABASE ROLE.
구문 (Syntax)
SHOW DATABASE ROLES IN DATABASE <name>
[ LIMIT <rows> [ FROM '<name_string>' ] ]
필수 파라미터 (Required parameters)
- name — 데이터베이스 이름을 지정해요. 이름 식별자를 지정하지 않으면 명령이 오류를 반환해요.
선택 파라미터 (Optional parameters)
-
LIMIT
<rows>[ FROM<name_string>] — 최대 행 수를 제한하면서 결과의 "페이지네이션"을 가능하게 해요.FROM '<name_string>'하위 절은 결과의 "커서" 역할을 해요. 객체 이름이 지정 문자열과 일치하는 첫 행 다음부터 지정한 개수의 행을 가져와요.- 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분해요.
- 문자열이 반드시 전체 객체 이름을 포함할 필요는 없어요. 부분 이름도 지원돼요.
- 기본값: 없음.
참고:
STARTS WITH와FROM절을 모두 지원하는 SHOW 명령에서는 두 절을 같은 문장에서 결합할 수 있어요. 다만 두 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 결과가 반환되지 않아요. 또한 객체는 이름 기준 사전 순으로 반환되므로STARTS WITH 'A' LIMIT ... FROM 'B'는 결과가 없고,STARTS WITH 'B' LIMIT ... FROM 'A'는 결과를 반환해요.
사용 참고 사항 (Usage notes)
- 이 명령은 특정 데이터베이스의 데이터베이스 역할만 표시할 수 있어요. 계정의 데이터베이스 역할을 표시하는 데는 사용할 수 없어요.
- 실행에 실행 중인 웨어하우스를 요구하지 않아요.
- 현재 역할에 하나 이상의 접근 권한이 부여된 객체만 반환해요.
MANAGE GRANTS권한은 보유자가 계정의 모든 객체를 볼 수 있게 해줘요. 기본적으로 ACCOUNTADMIN과 SECURITYADMIN 역할만 이 권한을 가져요.- 출력을 후처리하려면 파이프 연산자(
|>) 또는RESULT_SCAN함수를 사용할 수 있어요. 출력 컬럼을 참조할 때는 컬럼 이름을 큰따옴표로 감싸서 사용해요.
예제 (Examples)
mydb라는 데이터베이스에서 db_role2라는 첫 데이터베이스 역할 이후 최대 10개의 데이터베이스 역할을 반환해요:
SHOW DATABASE ROLES IN DATABASE mydb LIMIT 10 FROM 'db_role2';
더 알아보기 (Learn more)
- CREATE DATABASE ROLE — 데이터베이스 역할 만들기
- ALTER DATABASE ROLE — 데이터베이스 역할 수정
- DROP DATABASE ROLE — 데이터베이스 역할 삭제
- SHOW GRANTS — 권한 부여 확인