0

是否可以在操作系统级别允许某个用户或组使用 sqlplus,但将“sqlplus / as sysdba”的使用限制为同一用户或组?

4

2 回答 2

1

通常,任何分配了 Oracle 用户名的人都可以使用 SQLPLus,但只有 Oracle 所有者操作系统组的成员可以将 sqlplus 用作 sysdba,而无需密码。此权限通常分配给 OS 组 DBA,但可以不同。我曾在一个系统上工作,其中 DBA 组的成员无法使用 sysdba 连接,因为 Oracle 仅在 oinstall 中设置。这是在安装时配置的。所问问题的答案是,不。如果您将他们分配给特权组,那么他们就有特权。

于 2017-09-22T20:14:59.663 回答
0

如果我正确理解了您的问题,则问题的答案是YES,只要用户不属于该dba组。默认情况下,执行标志设置为“其他”,因此任何用户都可以sqlplus使用用户名/密码运行和连接。您甚至不必专门设置新用户或组,只需确保该用户不属于该dba组:

的默认权限sqlplus设置了x执行标志others

$ cd /opt/oracle/product/12.2.0.1/dbhome_1/bin
$ ls -al sqlplus
-rwxr-xr-x 1 oracle oinstall 25168 Sep 22 16:48 sqlplus

用户gerald不是dba组的一部分,因此不允许通过以下方式连接sqlplus / as sysdba

$ id
uid=54322(gerald) gid=54331(gerald) groups=54331(gerald)

$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sat Sep 23 04:22:33 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name:

但是,用户gerald仍然可以通过用户名/密码运行sqlplus和连接:

$ id
uid=54322(gerald) gid=54331(gerald) groups=54331(gerald)

$ sqlplus sys/gerald as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sat Sep 23 04:27:58 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Obviously, if you don't want to give users SYS access at all, don't share the SYS password with them!

于 2017-09-23T04:36:19.063 回答