本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予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 |
是 |
— |
|
布林值 |
false |
否 |
設定為 |
下列範例會將名為 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_ROLE
和 EXECUTE_CATALOG_ROLE
給 USER1
。由於 with admin option
已使用,因此 USER1
現在可以將存取權授予已授予 的SYS物件SELECT_CATALOG_ROLE
。
GRANT SELECT_CATALOG_ROLE TO
USER1
WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE toUSER1
WITH ADMIN OPTION;
已獲授予 PUBLIC
的物件不需要重新授予。如果使用 grant_sys_object
程序來重新授予存取,則程序呼叫會成功。