Oracle在已经拥有所有grant的表上选择grant



我有一个表table1,我想给用户user1赋予table1的SELECT权限。

我将使用下面的查询来授予SELECT。

grant select on table1 to user1;

但是在生产中,我不知道所有grant user1对table1有什么。那么,如果user1已经对table1拥有SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER和INDEX权限,只执行SELECT权限,会发生什么呢?

SELECT授权将被添加到该用户的任何现有授权中,如果它当前不存在。

"如果您授予用户权限,则数据库将该权限添加到用户的权限域中。">

请参阅以下文档,了解您的数据库版本(此版本为10g,但仍然适用):

适用的Oracle 10g文档

如果user1已经有SELECT, INSERT,(…)grant在表1上,只执行SELECT格兰特。

什么也不会发生。

  • GRANT不工作作为一个开关(即打开一个特权-另一个GRANT关闭它-另一个打开它…-不)。
    • 如果你想撤销一个特权,你应该这样做:REVOKE SELECT ON some_table FROM my_user;
  • 会被"双重授予"吗?(这样你就不得不撤销它两次?)-不,它不会

因此,如果user已经在该表上被授予了SELECT权限,那么再授予一次权限是无用的,但不会造成任何损害。

相关内容

  • 没有找到相关文章

最新更新