ORA-01031 & public

需求:数据库中所有用户对A用户中的TEST表自动拥有有SELECT权限,即便是新建的用户也要有这种权限。

但你不知道什么时候会新建用户。

 

这时想到了public用户。如果把权限赋于public,那么所有数据库的用户都自动拥有这个权限

 

 

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as devdb
SQL> GRANT SELECT ON t  TO PUBLIC;
Grant succeeded


SQL> conn testdev/****
SQL> select count(1) from t;
  COUNT(1)
----------
      7999

 

SQL> conn devdb/****
SQL> REVOKE SELECT ON t FROM PUBLIC;
Revoke succeeded

 

SQL> conn testdev/****
SQL> select count(1) from t;
select count(1) from t
ORA-01031: insufficient privileges

 

撤销掉public对t表的访问权限后。

 

不知道为什么报ORA-01031: insufficient privileges,而不报ORA-00942: table or view does not exist

 

你可能感兴趣的:(ORA-01031 & public)