oracle的grant语句,一次只能授权一张表的访问权限吗?

如图,worker表和department表都是存在的,为什么报错??

grant语句,一次只能对一个对象进行赋权;不能同时对两个表进行赋权;但可以同时赋权多个不同的权限;如,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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-20

grant语句,一次只能对一个对象进行赋权;不能同时对两个表进行赋权;但可以同时赋权多个不同的权限。解决方法如下:

1、在使用oracle数据库的时候,权限是极其重要的,如果新建的用户如果没有权限,甚至都无法登录数据库。

2、为新建用户分配权限主要有三种connect主要使用是让用户可以连接到数据库 ,resource主要使用是让用户可以创建表,dba它是一种比较特殊的权限,普通用户拥有之后可以成为数据库管理者。

3、还有一种权限主要是针对表的权限,select update  delete insert  all也就是拥有用户对某张表有查询 、更改、删除、插入及所有权限。

4、如果想要查询用户的权限可以通过下图中的方法进行查询。

5、与grant相对应的就是收回权限使用revoke如下图。

本回答被网友采纳
第2个回答  2020-02-20

grant语句,一次只能对一个对象进行赋权;不能同时对两个表进行赋权;但可以同时赋权多个不同的权限;如,grant select,update,insert on test_null to sys;

如:

1、多表同时赋权,会产生报错信息。

2、grant后的权限,可以重新收入,如,revoke update on test_null from sys。

扩展资料:

GRANT 允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限。对象创建后,除了创建者外,除非创建者赋予(GRANT)权限,其他人没有访问对象的权限。一旦用户有某对象的权限,他就可以使用那个特权。

不需要给创建者赋予(GRANT)对象的权限,创建者自动拥有对象的所有权限,包括删除它的权限。

参考资料来源:百度百科-grant (计算机术语)

本回答被网友采纳
第3个回答  推荐于2017-12-16
是的,一次grant只能指定一个对象,例如:grant select, update, insert on emp to hr;
可以多种操作权限,但是只能指定一张表。

记得采纳。本回答被提问者和网友采纳
第4个回答  2012-11-15
如果是授权几个表,只能单独授权
如果是授权某个用户下所有的表
可以使用
grant select any table to scott;
相似回答