当前位置: 首页 > 知识库问答 >
问题:

Oracle用户权限

谯嘉懿
2023-03-14

我创建了两个新用户和一个新角色。为模式A中的一个表的角色授予select权限,并将此角色分配给用户b。与此用户一起对架构a中的表发出select查询时,我遇到了“未找到表或视图”问题。

创建由READUSER1标识的用户READUSER1;创建由READUSER2标识的用户READUSER2;

创建由readonlyuser标识的角色只读用户

将READUSER1.TESTA上的select授予只读用户;

将READONLY_用户授予READUSER2;

现在从READUSER2会话:

从READUSER1.TESTA中选择*

共有1个答案

蓬兴国
2023-03-14

我假设您成功地在readUser1模式中创建了表,尽管您没有显示该步骤。

readUser2身份登录时,为会话启用了哪些角色?

select *
  from session_roles

我敢打赌该角色没有为会话启用。通常情况下,您不会为角色设置密码,因为您通常希望用户登录后即可使用这些角色。但是,如果为角色设置密码,则每次用户创建新会话时,他们都必须通过指定密码来显式启用角色。这在一些不寻常的情况下是非常有用的,但这不是标准。

假设readonly\u user未出现在session\u roles中,您可以使用set role命令启用该角色

set role readonly_user
  identified by readonlyuser;

完成此操作后,角色应显示在会话\u角色中,并且您应该能够查询该表。

但是,通常情况下,通过省略由子句标识的,您会创建一个普通角色,而不是受密码保护的角色

create role readonly_user;

 类似资料:
  • 问题内容: 我们正在合理化数据库用户的权限,为此,我们希望撤销授予所有用户(但不是特定角色)的架构中所有表的所有选择权限。 我尝试使用一些正则表达式为每个表创建一个通用表,使其类似于: 从USER1,USER2,USER3 …撤消对TABLE1的选择; 从USER1,USER2,USER3 …撤消对TABLE2的选择; 但是,由于并非所有用户都被授予了对所有表的权限,因此会导致oracle错误:

  • 在Ora11g中,我使用以下方式向用户授予所有权限。 但在ORA12C中,当我执行grant privileges时,我得到以下错误。 从命令-授予创建会话,向xx授予任何权限错误报告-ORA-00604:递归SQL级别1 ORA-20997发生错误:“授予任何权限”授予不允许的ORA-06512:在“RDSADMIN.RDSADMIN”处,第79行ORA-06512:在第2 00604行。000

  • 本文向大家介绍Oracle给用户授权truncatetable的实现方案,包括了Oracle给用户授权truncatetable的实现方案的使用技巧和注意事项,需要的朋友参考一下 1,对其它用户下的表执行trundate table操作 开发说在用dwetl下执行调用shop用户下的表的时候提示没有权限操作,google了查了下,发现oracle账户没法直接赋予对某个表的truncate权限,那要

  • 我有一个spring批处理管理应用程序。我们最近试图通过创建具有最低权限的新oracle用户来提高安全性。在为spring批处理应用程序替换用户之后,我得到了这个错误。

  • 问题内容: 我有一个架构和一个具有相同名称的用户:。为了进行开发,我想在Java应用程序中以只读模式使用它。因此,我为只读应用程序创建了一个新用户。 运行应用程序时,我得到表不存在的错误。在互联网上寻找解决方案时,我遇到了。因此,我为架构添加了同义词: 现在,我在应用程序中遇到此错误: 我的方法有什么问题? -更新- 似乎在10g中删除了为模式创建同义词的步骤(Oracle:是否可以为模式创建同义

  • 我在hsqldb测试中遇到了一点问题。 我在import.sql中添加了我需要的所有内容,它工作得很好。 我创建了一个类: 但是我得到了这个错误: