oracle 多表授权
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 多表授权相关的知识,希望对你有一定的参考价值。
用户A和B,我想把a下面的表的权限给b,用grant命令,但是a下面表很多,不能一条条写,这个情况怎么写比较简单呢?
set heading offset each off
spool d:\grant_a_b.sql
select 'grant select '||owner||'.'||object_name ||'to B' from dba_objects where owner='A' and object_type='TABLE';
spool off
set heading on
set each on
@d:\grant_a_b.sql
你执行这个脚本就可以了 参考技术A select 'grant select on '||table_name||' to b;' from dba_tables where owner = a;
oracle的grant语句,一次只能授权一张表的访问权限吗?
参考技术Agrant语句,一次只能对一个对象进行赋权;不能同时对两个表进行赋权;但可以同时赋权多个不同的权限;如,grant select,update,insert on test_null to sys;
举例实践如下:
1、多表同时赋权,会产生报错信息。
2、grant后的权限,可以重新收入,如,revoke update on test_null from sys。
3、当然也可以一次对该用户的所有表(不是同时多个对象),进行赋权,如,grant select any table to sys。
4、执行revoke select any table from sys;语句,可以将所有select赋权对象,进行回收。
扩展资料
1、给数据库用户授权(对象为用户表)
GRANT privilege[, ...] ON object[, ...] TO PUBLIC | GROUP group| username
privilege包含,select:查询、insert:插入、update:更新、delete:删除、all:所有
2、grant select,insert,update on tablename to public;
给所有用户授予查询、插入、更新tablename表的权限
revoke select,insert,update on tablename from public;//收回所有用户查询、插入、更新tablename表的权限
object包含,table:表、view:视图、sequence:序列、index:索引
3、grant select,insert,update on tablename,viewname,sequencename,indexname to public;
1)public:对所有用户开放权限
2)GROUP groupname:对该组所有用户开放权限
3)username:对指定用户开放权限
参考资料
ORACLE官网-ORACLE GRANT
以上是关于oracle 多表授权的主要内容,如果未能解决你的问题,请参考以下文章