錯誤訊息
- 代碼(sqlcode):-1031
- 描述(Sqlerrm):ORA-01031: 權限不足
發生原因
- 使用者在System Privileges權限不足
解決辦法及案例
UserA 本身可以執行Create Table權限,在Role Privileges也有繼承DBA權限,理應為最大使用者-- SQL 查詢使用者在Role Privileges的權限 Select * From dba_role_privs Where Grantee = 'UserA'
| Grantee | Granted_Role | Admin_Option | Default_Role |
|---|---|---|---|
| UserA | DBA | NO | YES |
但是在執行Store Procedures時,Oracle以使用者A本身的System Privileges檢查是否有Create Table權限
-- SQL 查詢使用者在System Privileges的權限 Select * From dba_sys_privs Where Grantee = 'UserA'
| Grantee | Privilege | Admin_Option |
|---|---|---|
| UserA | Unlimited Tablespace | YES |
該使用者A並無相關權限,因此執行Store Procedures時,無法執行Create Table指令
因此必須建立該使用者Create Table權限。
-- SQL 查詢使用者在System Privileges的權限 Select * From dba_sys_privs Where Grantee = 'UserA'
| Grantee | Privilege | Admin_Option |
|---|---|---|
| UserA | Unlimited Tablespace | YES |
沒有留言:
張貼留言