SHOW DATABASE ROLES¶
지정된 데이터베이스의 모든 데이터베이스 역할을 나열합니다.
중요
활성 데이터베이스에 대한 권한(예: USAGE)이 부여된 활성 역할을 가진 사용자는 데이터베이스의 데이터베이스 역할을 나열할 수 있습니다. 하지만 이것이 꼭 사용자가 역할을 통해 데이터베이스 역할을 사용하여 SQL 작업을 수행할 수 있다는 의미는 아닙니다. 데이터베이스 역할을 사용하려면 먼저 사용자가 사용자 세션에서 활성화할 수 있는 계정 역할이나 계층 구조에서 더 낮은 계정 역할에 데이터베이스 역할을 부여해야 합니다.
이는 임의적 액세스 제어와 역할 기반 액세스 제어의 일부입니다. 자세한 내용은 액세스 제어의 개요 섹션을 참조하십시오.
구문¶
SHOW DATABASE ROLES IN DATABASE <name>
[ LIMIT <rows> [ FROM '<name_string>' ] ]
필수 매개 변수¶
name데이터베이스의 이름을 지정합니다.
이름 식별자를 지정하지 않으면 이 명령을 실행할 때 오류가 반환됩니다.
선택적 매개 변수¶
LIMIT rows [ FROM 'name_string' ]반환되는 최대 행 수를 선택적으로 제한하는 동시에, 결과의 “페이지 매김”도 활성화합니다. 반환되는 실제 행 수는 지정된 제한보다 적을 수 있습니다. 예를 들어 기존 오브젝트 수가 지정된 제한보다 적습니다.
선택적
FROM 'name_string'하위 절은 사실상 결과에 대한 “커서” 역할을 합니다. 그 덕분에 오브젝트 이름이 지정된 문자열과 일치하는 첫 번째 행 다음에 오는 행을 지정된 개수만큼 가져올 수 있습니다.문자열은 작은따옴표로 묶어야 하며 대/소문자를 구분 합니다.
부분 이름이 지원되므로, 문자열이 전체 오브젝트 이름을 포함할 필요는 없습니다.
기본값: 값 없음(출력에 제한이 적용되지 않음)
참고
FROM 'name_string'및STARTS WITH 'name_string'절을 모두 지원하는 SHOW 명령의 경우 동일한 문에서 이러한 절을 모두 결합할 수 있습니다. 하지만 두 가지 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 아무런 결과도 반환되지 않습니다.또한, 오브젝트는 이름을 기준으로 사전순으로 반환되므로,
FROM 'name_string'은STARTS WITH 'name_string'에서 반환된 행보다 사전 값이 더 높은 행만 반환합니다.예:
... STARTS WITH 'A' LIMIT ... FROM 'B'는 아무런 결과도 반환하지 않습니다.... STARTS WITH 'B' LIMIT ... FROM 'A'는 아무런 결과도 반환하지 않습니다.... STARTS WITH 'A' LIMIT ... FROM 'AB'는 결과를 반환합니다(입력 문자열과 일치하는 행이 있는 경우).
사용법 노트¶
이 명령은 특정 데이터베이스의 데이터베이스 역할 표시만 지원합니다.
이 명령을 사용하여 계정의 데이터베이스 역할을 표시할 수 없습니다.
이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.
이 명령은 현재 사용자의 현재 역할에 하나 이상의 액세스 권한이 부여된 오브젝트만 반환합니다.
MANAGE GRANTS 액세스 권한은 그 권한을 보유한 자가 계정에 있는 모든 오브젝트를 볼 수 있도록 암시적으로 허용합니다. 기본적으로, 계정 관리자(ACCOUNTADMIN 역할 이 있는 사용자)와 보안 관리자(SECURITYADMIN 역할이 있는 사용자)만 MANAGE GRANTS 권한을 가집니다.
이 명령의 출력을 후처리하기 위해 파이프 연산자 (
->>) 또는 RESULT_SCAN 함수를 사용할 수 있습니다. 두 구문 모두 출력을 쿼리할 수 있는 결과 세트로 간주합니다.For example, you can use the pipe operator or RESULT_SCAN function to select specific columns from the SHOW command output or filter the rows.
When you refer to the output columns, use double-quoted identifiers for the column names. For example, to select the output column
type, specifySELECT "type".You must use double-quoted identifiers because the output column names for SHOW commands are in lowercase. The double quotes ensure that the column names in the SELECT list or WHERE clause match the column names in the SHOW command output that was scanned.
예¶
db_role2 라는 첫 번째 데이터베이스 역할 다음에 mydb 라는 데이터베이스에서 최대 10개의 데이터베이스 역할을 반환합니다.
SHOW DATABASE ROLES IN DATABASE mydb LIMIT 10 FROM 'db_role2';