oracle新建用户有dba权限却sysdba方式登陆失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle新建用户有dba权限却sysdba方式登陆失败相关的知识,希望对你有一定的参考价值。
参考技术A dba权限和sysdba权限是两个权限,一般来说二者并不通用。也就是说:“有DBA权限不一定有sysdba权限,有sysdba权限不一定有DBA权限。”不过一般在应用时,拥有sysdba权限的用户只有一个,而这个用户一般也拥有dba权限,这个用户就是数据库中权限最大的用户sys,所以一般都认为拥有sysdba权限的用户都会有dba的权限,其实二者并不完全一样。
至于dba权限和sysdba权限并不相同,所以就算授予了新用户dba权限,但是新用户是没有sysdba权限的。
比如sysdba权限有启停数据库的权限(默认是有的,虽然这个权限属于sysoper),但是这个权限在dba权限中是没有的。
不过sysdba并不能随便授予,只能通过sys授予。
Oracle - 授予非 dba 用户权限以在另一个用户对象上创建授权
【中文标题】Oracle - 授予非 dba 用户权限以在另一个用户对象上创建授权【英文标题】:Oracle - grant non-dba user rigths to create grants on another user objects 【发布时间】:2014-11-04 11:40:28 【问题描述】:是否有可能授予 Oracle 数据库上的普通用户访问另一个模式中的表的权限?由于我们公司的安全政策,我不能简单地授予该用户 dba 或 sysdba 权限,因为我可以找到很多这样的解决方案。我的目标是使用只有管理员知道的凭据创建特殊帐户,这些管理员可以执行某些 dba 操作并且不能提升常规用户权限。
我需要类似的东西:
我们有 user1、user2 和 user3 我们授予 user1 一些特殊权限 现在我们可以作为 user1 执行:将 user2.table1 上的选择授予 user3关于如何实现它的任何想法?
【问题讨论】:
【参考方案1】:在GRANT
documentation 中,您可以选择使用限定符WITH GRANT OPTION
:
指定 WITH GRANT OPTION 以使被授权者能够将对象权限授予其他用户和角色。
即如果 USER1 将 SELECT 授权给 USER2,并且您希望 USER2 能够将该授权传播给 USER3,您将在以 USER1 身份连接时使用以下内容
grant select on user1.table to user2 with grant option
您可以在以 USER2 身份连接时执行以下操作
grant select on user1.table to user3
【讨论】:
Ben,感谢您的回答,但这不完全是我的情况,请注意。我希望有一个帐户来执行所有任务,我不想切换到其他帐户。 @RLapinski 给出的答案是正确的。您想要一个超级用户而不授予超级用户能力。如果这是可能的,它将违反数据库中内置的每个安全约束。你在上面看到的其实很常见。 实际上我已经设法用不同的方法解决了我的问题,而无需特殊帐户。但如果你这么说,我会接受解决方案:) 我没有这么说@RLapinski,如果你有不同的答案,为什么不发布它以便其他人将来可以学习? 明白。我刚刚从我的示例中消除了对 user1 的需求,我只与 user2 一起执行授权。以上是关于oracle新建用户有dba权限却sysdba方式登陆失败的主要内容,如果未能解决你的问题,请参考以下文章
windows10下“sqlplus / as sysdba”执行提示无权限解决办法