
oracle怎么给存储过程赋增加表的权限? 5
也就是可以在存储过程中创建表,见网上有这么写的executeimmediate'grantgrantcreatetableto存储过程名';但是不能执行,是错的...
也就是可以在存储过程中创建表,见网上有这么写的
execute immediate 'grant grant create table to 存储过程名';
但是不能执行,是错的 展开
execute immediate 'grant grant create table to 存储过程名';
但是不能执行,是错的 展开
展开全部
GRANT说明:
名称
GRANT — 赋予一个用户,一个组或所有用户访问权限
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }
输入
privilege 可能的权限有:
SELECT:访问声明的表/视图的所有列/字段.
INSERT:向声明的表中插入所有列字段.
UPDATE:更新声明的所有列/字段.
DELETE:从声明的表中删除所有行.
RULE: 在表/视图上定义规则 (参见 CREATE RULE 语句).
ALL: 赋予所有权限.
object 赋予权限的对象名.可能的对象是:
* table (表)
* view (视图)
* sequence (序列)
* index (索引)
PUBLIC:
代表是所有用户的简写.
GROUP group:
将要赋予权限的组 group .目前的版本中,组必须是用下面方法显式创建的.
username:
将要赋予权限的用户名.PUBLIC 是代表所有用户的简写.
输出
CHANGE: 如果成功,返回此信息.
ERROR: ChangeAcl: class "object" not found
如果所声明的对象不可用或不可能对声明的组或用户赋予权限.
名称
GRANT — 赋予一个用户,一个组或所有用户访问权限
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }
输入
privilege 可能的权限有:
SELECT:访问声明的表/视图的所有列/字段.
INSERT:向声明的表中插入所有列字段.
UPDATE:更新声明的所有列/字段.
DELETE:从声明的表中删除所有行.
RULE: 在表/视图上定义规则 (参见 CREATE RULE 语句).
ALL: 赋予所有权限.
object 赋予权限的对象名.可能的对象是:
* table (表)
* view (视图)
* sequence (序列)
* index (索引)
PUBLIC:
代表是所有用户的简写.
GROUP group:
将要赋予权限的组 group .目前的版本中,组必须是用下面方法显式创建的.
username:
将要赋予权限的用户名.PUBLIC 是代表所有用户的简写.
输出
CHANGE: 如果成功,返回此信息.
ERROR: ChangeAcl: class "object" not found
如果所声明的对象不可用或不可能对声明的组或用户赋予权限.
参考资料: http://hi.baidu.com/xujingood/blog/item/b1df5b4282b2f9179213c64b.html
展开全部
没有这样的语法 grant grant create table to 存储过程名;
你可以在存储过程中动态的创建表,execute immediate 'create table xx (x char(10))';
你可以在存储过程中动态的创建表,execute immediate 'create table xx (x char(10))';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先存储过程是不能直接建表的,所以不能赋予它这个权限,这是oracle规定,就好像你规定自己什么时候起床一样;
其次可以同过以上的execute immediate 执行一些储过程是不能直接执行的事,如:创建表
以上回答均个人暂时性观点。如有错误请多原谅!!!
其次可以同过以上的execute immediate 执行一些储过程是不能直接执行的事,如:创建表
以上回答均个人暂时性观点。如有错误请多原谅!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询