我的数据库中有3个架构:
现在我正在编写一个程序,根据他们的工作授予人们访问权限。根据他们的工作,他们需要选择或选择,更新,插入和删除某些表的权限。
我知道通常你会为此创建角色,但我不能(DBA是外部的,他们不喜欢角色.......)
运行采购时,我正在插入新用户以及他们所属的部门。例如,如果部门是IT_SUPPORT,则他们需要能够更新帐户帐户和local_it帐户中的表。我的程序位于local_it帐户中。
现在,当我尝试运行像:
这样的脚本时for x in (select *
from all_objects
where owner in ('COLLDESK','LOCAL_IT')
and object_type in ('TABLE','VIEW')
and object_name not in ('IFM_letter_data','IFM_letter_data_V2')
order by owner asc)
loop
execute immediate 'grant update on ' || x.owner || '.' || x.object_name || ' to ' || v_user;
end loop;
我收到错误,说我没有足够的权限。是否可以在不同模式的表上授予更新权限?我可以授予选择权限。
提前多多感谢
答案 0 :(得分:1)
看看这个:你有一个你信任的朋友,你给了他一个钥匙给你的公寓。 如果你的朋友会把钥匙的副本交给他的朋友,你还好吗?
可能是NO,可能是YES。
如果您想向用户授予权限,您可能会说该用户可以与其他用户共享访问权限。
所以,在你的情况下:
拥有表格的用户应授予您访问权限的权限,并permissions分享:
grant update on my_table to you with grant option
然后您可以管理对该表的访问。