SYS 객체에 대한 SELECT 또는 EXECUTE 권한 부여
일반적으로 여러 객체가 포함되어 있을 수 있는 역할을 사용하여 권한을 이전합니다. 단일 객체에 권한을 부여하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.grant_sys_object
를 사용합니다. 이 프로시저는 마스터 사용자가 역할이나 직접 부여를 통해 이미 부여받은 권한만 부여합니다.
grant_sys_object
프로시저에는 다음과 같은 파라미터가 있습니다.
중요
대소문자를 구분하는 식별자로 사용자를 생성하지 않는 한 모든 파라미터 값에 대문자를 사용합니다. 예를 들어 CREATE USER
myuser
또는 CREATE USER MYUSER
를 실행하는 경우 데이터 딕셔너리에 MYUSER
가 저장됩니다. 그러나 CREATE USER
"MyUser"
에서 큰 따옴표를 사용하는 경우 데이터 딕셔너리를 MyUser
에 저장합니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar2 |
— |
예 |
권한을 부여할 객체의 이름입니다. 디렉터리, 기능, 패키지, 프로시저, 시퀀스, 테이블, 뷰가 객체가 될 수 있습니다. 객체 이름은 |
|
varchar2 |
— |
예 |
권한을 부여할 객체의 이름입니다. 스키마나 역할이 객체가 될 수 있습니다. |
|
varchar2 |
null |
예 |
— |
|
boolean |
false |
아니요 |
|
다음 예에서는 V_$SESSION
이라는 객체에 대한 선택 권한을 USER1
이라는 사용자에게 부여합니다.
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => '
V_$SESSION
', p_grantee => 'USER1
', p_privilege => 'SELECT
'); end; /
다음 예에서는 V_$SESSION
이라는 객체에 대한 선택 권한을 USER1
이라는 사용자에게 부여 옵션과 함께 부여합니다.
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => '
V_$SESSION
', p_grantee => 'USER1
', p_privilege => 'SELECT
', p_grant_option =>true
); end; /
객체에 권한을 부여할 수 있으려면 해당 권한을 부여 옵션을 통해 계정에 직접 부여하거나 with admin option
을 사용해 부여된 역할을 통해 계정에 부여해야 합니다. 대부분 이미 SELECT
역할에 부여된 DBA 뷰에 SELECT_CATALOG_ROLE
권한을 부여하는 경우가 많습니다. 해당 역할이 아직 with admin option
을 통해 사용자에게 직접 부여되지 않았다면 권한을 양도할 수 없습니다. DBA 권한이 있다면 역할을 직접 다른 사용자에게 부여할 수 있습니다.
다음은 SELECT_CATALOG_ROLE
과 EXECUTE_CATALOG_ROLE
을 USER1
에게 부여하는 예제입니다. with
admin option
을 사용했기 때문에, USER1
은 이제 SELECT_CATALOG_ROLE
에 부여된 SYS 객체 액세스 권한을 부여할 수 있습니다.
GRANT SELECT_CATALOG_ROLE TO
USER1
WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE toUSER1
WITH ADMIN OPTION;
PUBLIC
에 이미 부여된 객체는 다시 부여할 필요가 없습니다. grant_sys_object
프로시저를 사용하여 액세스 권한을 다시 부여한다면, 프로시저는 성공을 호출합니다.