我目前在 RHEL 5 上使用 Oracle 11g。
由于安全问题,我想在我的数据库上禁用操作系统身份验证管理。当操作系统管理员用户登录到操作系统时,他们发出“sqlplus /”,他们可以登录到我的数据库。我怎样才能禁用它?
问候,
萨里特
我目前在 RHEL 5 上使用 Oracle 11g。
由于安全问题,我想在我的数据库上禁用操作系统身份验证管理。当操作系统管理员用户登录到操作系统时,他们发出“sqlplus /”,他们可以登录到我的数据库。我怎样才能禁用它?
问候,
萨里特
这受几件事支配。一般默认是不能这样做的。如果您的用户可以这样做,那是因为您的数据库和用户已设置为允许这样做。
操作系统身份验证仅在您的操作系统用户名与已设置为外部识别的数据库帐户名兼容时才有效 。兼容,我的意思是它具有适当的操作系统身份验证前缀。
默认情况下,操作系统用户“fred”将连接到数据库帐户“OP$fred”。如果这样的帐户不存在,他就无法连接。如果该帐户存在但未设置 IDENTIFIED EXTERNALLY,则他无法连接。
值得注意的是,在某些情况下,它是一种安全机制。例如,如果您在操作系统用户“批处理”下设置 cron 作业,那么您可以为该用户拥有一个数据库帐户,该帐户只能由该操作系统帐户连接。一般的替代方法是将用户名/密码存储在配置文件中。不可避免地,该文件被不应该阅读的人阅读,备份到不安全的位置......
假设您确实想阻止它们,只需执行 ALTER USER batch ACCOUNT LOCK 或 ALTER USER batch IDENTIFIED BY password;
注意:关于 dba 组中的用户能够使用“/AS SYSDBA”子句进行连接存在一个单独的问题。对此的简单回答是从 dba 组中删除此类用户。如果他们有 sudo/root 访问权限,请很好地要求他们不要这样做。如果这不起作用,您可以尝试 AUDIT 来跟踪他们的工作,并让您的经理参与其中。