Hig*_*eat 1 oracle oracle-11g permissions jdbc
我使用oewizard从swingbench创建一个订单录入像的Oracle 11g架构。当我运行向导时,我收到以下错误:
ORA-01031: Cannot grant execute on dbms_lock to soe: Insufficient privilege
ORA-01031: Cannot GRANT SELECT ON SYS.V_$PARAMETER to SOE: Insufficient privilege
Run Code Online (Sandbox Code Playgroud)
现在我使用SYSTEM
用户作为 DBA 从 oewizard 登录帐户。现在我的第一个问题:
SYSTEM
用户是否SYS_DBA
从一开始就拥有特权我从sqlplus
(GRANT DBA to SYSTEM; Grant Succeeded)向 SYSTEM 显式授予 DBA 特权,但是在通过 SYSTEM(同一用户)通过 JDBC(oewizard 的后端)进行连接时,我仍然遇到相同的错误。所以我的下一个问题是:
渴望听到你的消息
来自 Oracle 文档-
创建 Oracle 数据库时,用户 SYSTEM 也会自动创建并被授予 DBA 角色。
SQL> conn system
Password:
SQL> select * from session_roles;
ROLE
------------------------------
CONNECT
RESOURCE
DBA
SQL> show user;
USER is "SYSTEM"
SQL> grant execute on dbms_lock to jay;
grant execute on dbms_lock to jay
*
ERROR at line 1:
ORA-01031: insufficient privileges
Run Code Online (Sandbox Code Playgroud)
发生错误是因为 SYSTEM 用户没有 ' EXECUTE
' 权限且GRANT
选项打开DBMS_LOCK
。
SQL>conn / as sysdba
SQL> select * from user_tab_privs where grantee='SYSTEM' and table_NAME='DBMS_LOCK';
no rows selected
Run Code Online (Sandbox Code Playgroud)
此外,DBA 角色EXECUTE
对DBMS_LOCK
包没有“ ”对象特权。
SQL> select * from role_tab_privs where role='DBA' and table_name='DBMS_LOCK';
no rows selected
Run Code Online (Sandbox Code Playgroud)
为了授予执行权限,您需要SYSDBA
连接到SYS
模式、所有者DBMS_LOCK
或授予“ EXECUTE
”权限以及GRANT
执行授予的用户的选项。
[oracle@myserver ~]$ sqlplus system as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue May 2 14:45:27 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> show user;
USER is "SYS"
SQL> grant execute on dbms_lock to jay;
Grant succeeded.
Run Code Online (Sandbox Code Playgroud)
当从 sqlplus(以 SYSDBA 身份)登录时,即使在我们退出 sqlplus 之后,分配给给定用户的授权是否仍然存在?
是的,他们坚持。
我们有没有办法通过 JDBC 以 SYSDBA 身份登录,因为当我尝试它时,它不允许我。
这是一个对我来说很好用的示例连接字符串。
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@host:port/SID","sys as sysdba","password");
归档时间: |
|
查看次数: |
6082 次 |
最近记录: |