读书人

一个权限的有关问题

发布时间: 2012-12-28 10:29:05 作者: rapoo

一个权限的问题
我按书上创建了这样一个存储过程

CREATE PROCEDURE EXEC_DDL(DDL_STRING IN VARCHAR2)
IS
BEGIN
EXECUTE IMMEDIATE DDL_STRING;
END EXEC_DDL;
后面我执行存储过程报错

BEGIN
EXEC_DDL('CREATE TABLE DD(ID INT,FNAME VARCHAR2(100))');
END;
说我权限不足,
查看什么乱七八糟的堆栈说是这句
EXECUTE IMMEDIATE DDL_STRING;
说明下,我登陆的用户是DBA权限。求指教
[最优解释]
可能需要显式授权,
sys用户登陆,
然后
grant create table to username;
[其他解释]
加上这个就好了authid current_user

CREATE OR REPLACE PROCEDURE EXEC_DDL(DDL_STRING IN VARCHAR2) authid current_user
IS
BEGIN
EXECUTE IMMEDIATE DDL_STRING;
END EXEC_DDL;

[其他解释]
你这个dba用户是在哪个表空间上建的?
[其他解释]
/*第1步:创建临时表空间 */

create temporary tablespace user_temp

tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;


/*第2步:创建数据表空间 */

create tablespace DC_KTR

datafile 'E:\oracle\product\10.2.0\oradata\orcl\dc_ktr.dbf'

size 5000m

autoextend on

next 50m maxsize 20480m

extent management local;



/*第3步:创建用户并指定表空间 */

create user username identified by password

default tablespace user_data

temporary tablespace user_temp;



/*第4步:给用户授予权限 */

grant connect,resource,dba to username;


按这个过程创建的

读书人网 >oracle

热点推荐