限制用户使用 OS 级别的“conn /as sysdba”
Restrict user to use ‘conn /as sysdba’ from OS Level
是否可以允许特定用户或组在 OS 级别使用 sqlplus,但限制同一用户或组使用 "sqlplus / as sysdba"?
通常任何分配了 Oracle 用户名的人都可以使用 SQLPLus,但只有 Oracle 所有者 OS 组的成员才能将 sqlplus 作为 sysdba 使用而无需密码。此权限通常分配给 OS 组 DBA,但可以不同。我曾在一个系统上工作,其中 DBA 组的成员无法使用 sysdba 连接,因为 Oracle 仅在 oinstall 中设置。这是在安装时配置的。您的问题的答案是,否。如果您将他们分配给特权组,那么他们就有特权。
如果我正确理解了你的问题,只要用户不属于 dba
组,问题的答案就是 YES。默认情况下,执行标志设置为 "others",因此任何用户都可以 运行 sqlplus
并连接 username/password。您甚至不必专门设置新用户或组,只需确保该用户不属于 dba
组:
sqlplus
的默认权限已为 others
设置了 ex
执行标志:
$ 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
并通过 username/password:
连接
$ 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
显然,如果您根本不想授予用户 SYS
访问权限,请不要与他们共享 SYS 密码!
是否可以允许特定用户或组在 OS 级别使用 sqlplus,但限制同一用户或组使用 "sqlplus / as sysdba"?
通常任何分配了 Oracle 用户名的人都可以使用 SQLPLus,但只有 Oracle 所有者 OS 组的成员才能将 sqlplus 作为 sysdba 使用而无需密码。此权限通常分配给 OS 组 DBA,但可以不同。我曾在一个系统上工作,其中 DBA 组的成员无法使用 sysdba 连接,因为 Oracle 仅在 oinstall 中设置。这是在安装时配置的。您的问题的答案是,否。如果您将他们分配给特权组,那么他们就有特权。
如果我正确理解了你的问题,只要用户不属于 dba
组,问题的答案就是 YES。默认情况下,执行标志设置为 "others",因此任何用户都可以 运行 sqlplus
并连接 username/password。您甚至不必专门设置新用户或组,只需确保该用户不属于 dba
组:
sqlplus
的默认权限已为 others
设置了 ex
执行标志:
$ 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
并通过 username/password:
$ 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
显然,如果您根本不想授予用户 SYS
访问权限,请不要与他们共享 SYS 密码!