conn test/test
test具有dba权限:
SQL> CREATE OR REPLACE PROCEDURE create_location
2 (p_loc VARCHAR2)
3 IS
4 BEGIN
5 EXECUTE IMMEDIATE 'create TABLE ' ||p_loc||'(object_id number)';
6 END;
7 /
过程已创建。
SQL> execute create_location('www');
BEGIN create_location('www'); END;
*
第 1 行出现错误:
ORA-01031: 权限不足
ORA-06512: 在 "TEST.CREATE_LOCATION", line 5
ORA-06512: 在 line 1
conn sys/liang as sysdba
grant create any table to test
conn test/test
execute create_location('www');
PL/SQL 过程已成功完成。
SQL> desc www
名称
--------------
OBJECT_ID
原来动态sql语句执行需要显示授权,不能通过角色。