0
我想授予用户更新权限给模式中的所有表,除了更新主键。有没有简单的方法来做到这一点?或者我应该为每个表单独执行并定义每个列。授予Oracle授予权限
它是如何工作的?我确定有一个简单的方法来做到这一点。我正在阅读所有文档,但它给了我所有的通用示例。
我想授予用户更新权限给模式中的所有表,除了更新主键。有没有简单的方法来做到这一点?或者我应该为每个表单独执行并定义每个列。授予Oracle授予权限
它是如何工作的?我确定有一个简单的方法来做到这一点。我正在阅读所有文档,但它给了我所有的通用示例。
declare
myquery varchar2(1024);
begin
for rc in (select * from user_tab_cols u
where not exists (
select * from
user_constraints c
,user_cons_columns cc
where c.constraint_type = 'P'
and c.constraint_name = cc.column_name
and u.table_name = cc.table_name
and u.column_name = cc.column_name
)) loop
myquery := 'GRANT update ('||rc.column_name||') on '||rc.table_name||' to myuser';
--dbms_output.put_line(myquery);
execute immediate myquery;
end loop;
end;
p.s.我不清楚描述中“所有表”的含义。在我查询当前模式中的所有表,如果你需要数据库中的所有表更改用户***到所有***,即user_constraints到all_constraints等。
谢谢你的回答。但是,我可以授予用户所有权限,然后撤消更新列名称吗?这能工作吗? – user983983