授予SYS物件 SELECT 或 EXECUTE權限 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

授予SYS物件 SELECT 或 EXECUTE權限

您通常可以使用角色來傳輸權限,角色中可能包含許多物件。若要將權限授予單一物件,請使用 Amazon RDS 程序 rdsadmin.rdsadmin_util.grant_sys_object。該程序只會授予主要使用者透過角色或直接授予所取得的權限。

grant_sys_object 程序具有下列參數。

重要

針對所有參數值,除非您已使用區分大小寫的識別符來建立使用者,否則請使用大寫字母。例如,如果您執行 CREATE USER myuserCREATE USER MYUSER,資料字典會存放 MYUSER。不過,如果您在 CREATE USER "MyUser" 中使用雙引號,資料字典則會存放 MyUser

參數名稱 資料類型 預設 必要 描述

p_obj_name

varchar2

要從其授予權限的來源物件名稱。物件可以是目錄、函數、套件、程序、順序、資料表或檢視。物件名稱的拼寫必須完全符合 DBA_OBJECTS 中的顯示內容。多數系統物件是以大寫定義,因此建議您先嘗試採用大寫。

p_grantee

varchar2

要對其授予權限的目標物件名稱。物件可以是結構描述或角色。

p_privilege

varchar2

null

p_grant_option

布林值

false

設定為 true 以使用 WITH GRANT OPTION。

下列範例會將名為 V_$SESSION 物件上的 SELECT 權限授予名為 USER1 的使用者。

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT'); end; /

下列範例會將名為 V_$SESSION 物件上的 SELECT 權限授予名為 USER1 且擁有 GRANT OPTION 的使用者。

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT', p_grant_option => true); end; /

您必須使用 GRANT OPTION 或透過使用 with admin option 授予的角色直接將這些權限授予帳戶,才能夠在物件上授予權限。在最常見的案例中,您可能想要在已授予SELECT_CATALOG_ROLE角色的DBA檢視SELECT上授予 。如果您尚未使用 with admin option 將該角色直接授予使用者,則無法轉移權限。如果您有DBA權限,則可以直接將角色授予其他使用者。

下列範例會授予 SELECT_CATALOG_ROLEEXECUTE_CATALOG_ROLEUSER1。由於 with admin option 已使用,因此 USER1現在可以將存取權授予已授予 的SYS物件SELECT_CATALOG_ROLE

GRANT SELECT_CATALOG_ROLE TO USER1 WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE to USER1 WITH ADMIN OPTION;

已獲授予 PUBLIC 的物件不需要重新授予。如果使用 grant_sys_object 程序來重新授予存取,則程序呼叫會成功。