这两个权限不会被授予DBA:
SQL和GUI尝试授予这些权限会返回成功的消息,但它们仍然被撤销。以SYS身份登录时:
Bookshop_DBA privileges appear as such
返回消息表示授予成功但未进行任何更改。
答案 0 :(得分:1)
请告诉我们您的实际行动。
如果你正在使用如图所示的对话框并遇到问题,你应该能够报告任何ORA错误。
例如:
您不必猜测SQL Developer实际上在做什么 - 单击编辑用户对话框的SQL页面。
在进一步讨论之前,请考虑:
从非特权用户运行此代码:
-- SYSTEM PRIVILEGES
GRANT SYSDBA TO "user" ;
GRANT SYSOPER TO "user" ;
Error starting at line : 6 in command -
GRANT SYSDBA TO "user"
Error report -
ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a database operation without
the necessary privileges.
*Action: Ask your database administrator or designated security
administrator to grant you the necessary privileges
Error starting at line : 7 in command -
GRANT SYSOPER TO "user"
Error report -
ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a database operation without
the necessary privileges.
*Action: Ask your database administrator or designated security
administrator to grant you the necessary privileges
那么,我们如何解决这个问题呢?
您需要为执行授权的用户执行此操作 - 如果您要让他们执行此操作,您最好真正信任此用户...
GRANT SYSDBA TO "*user*" WITH ADMIN OPTION;
但是,那还不够。
根据DOCS:
因为SYSDBA和SYSOPER是最强大的数据库权限, GRANT语句中未使用WITH ADMIN OPTION。那就是 被授予者不能依次授予SYSDBA或SYSOPER权限 另一个用户。只有当前以SYSDBA身份连接的用户才能授予或 撤消其他用户的SYSDBA或SYSOPER系统权限。这些 权限无法授予角色,因为角色可用 仅在数据库启动后。不要混淆SYSDBA和SYSOPER 具有操作系统角色的数据库权限。
因此,在SQL Developer中,断开连接。
更改您的连接属性:
既然您已经以SYSDBA身份连接,那么您可以做......危险的事情......就像给别人一样。
PS - 不要将任何东西授予像HR那样的演示模式。并且在生产环境中没有这些演示模式,它们仅作为学习资源。
答案 1 :(得分:0)
可能是由于您与之相关的用户。 SYSDBA和SYSOPER privs只能由SYSDBA用户授予。