暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【每日一练 030】日常管理 :安全管理(二)

原创 李美静 恩墨学院 2020-08-04
902

1 特权账号的保护机制

特权帐户可通过以下方式加以保护:
使用大小写敏感的密码文件
为管理员角色启用强身份验证
具有SYSDBA或SYSOPER权限的用户必须始终经过身份验证。在本地连接时,本地操作系统通过判断是否为特权操作系统组的成员对用户进行身份验证。如果远程连接,则使用密码文件对特权用户进行身份验证。如果配置了密码文件,将首先检查它。在Oracle数据库中,这些密码是区分大小写的。Oracle数据库提供了其他方法,使远程管理员身份验证更加安全,并集中管理这些特权用户。
当使用数据库配置助手DBCA创建数据库时,密码文件是区分大小写的。如果对早期的数据库版本升级,请确保使远程连接的密码文件区分大小写:
orapwd file=orapworcl entries=5 ignorecase=N
如果担心密码文件可能容易受到攻击,或者许多密码文件的维护是一种负担,那么可以实现强身份验证。如果想使用强身份验证方法,则需要高级安全性选项。

2 用户身份验证

密码:用户定义包括用户试图登录数据库时必须提供的密码
外部:通过(操作系统、Kerberos或Radius)数据库之外的方法进行身份验证
全局:通过使用基于ldap的目录服务来标识用户

2.1 密码验证

身份验证意味着验证希望使用数据、资源或应用程序的某人或某物(用户、设备或其他实体)的身份。验证该身份将为进一步的交互建立信任关系。身份验证还可以通过将访问和操作链接到特定身份来实现问责性。身份验证之后,授权流程可以允许或限制该实体的访问级别和操作。
在创建用户时,必须决定要使用的身份验证技术,稍后可以对其进行修改。
密码:这也被Oracle数据库服务器称为身份验证。使用用户试图建立连接时必须提供的关联密码创建每个用户。在设置密码时,可以立即使密码过期,这将迫使用户在首次登录后更改密码。如果决定使用过期的用户密码,请确保用户能够更改密码。有些应用程序没有此功能。在Oracle数据库中创建的所有密码默认都是区分大小写的。这些密码也可以包含多字节字符,限制为30字节。
在网络连接(client/server和server/server)中,在通过网络发送密码之前,密码总是通过使用高级加密标准(AES)算法自动透明地加密。

2.2 外部验证和全局验证

外部:这是通过数据库(操作系统、Kerberos或Radius)之外的方法进行的身份验证。Kerberos或Radius需要高级安全性选项。用户可以连接到Oracle数据库,而无需指定用户名或密码。高级安全选项(一种强身份验证)允许使用生物识别、x509证书和令牌设备对用户进行身份识别。使用外部身份验证,数据库依赖底层操作系统、网络身份验证服务或外部身份验证服务来限制对数据库帐户的访问。数据库密码不用于这种类型的登录。如果操作系统或网络服务允许,可以让它认证用户。如果使用操作系统身份验证,请设置OS_AUTHENT_PREFIX初始化参数,并在Oracle用户名中使用这个前缀。OS_AUTHENT_PREFIX参数定义了一个前缀,Oracle数据库将其添加到每个用户操作系统帐户名的开头。这个参数的默认值是OPS$,表示向后兼容Oracle软件的前一个版本。当用户尝试连接时,Oracle数据库将前缀用户名与数据库中的Oracle用户名进行比较。例如,假设OS_AUTHENT_PREFIX设置如下:
OS_AUTHENT_PREFIX = OPS 如果操作系统帐户名为tsmith的用户需要连接到Oracle数据库并由操作系统进行身份验证,Oracle数据库将检查是否存在相应的数据库用户OPStsmith,如果存在,则允许该用户连接。所有对经过操作系统身份验证的用户的引用都必须包含前缀,如在OPS$tsmith中所见。
注意:OS_AUTHENT_PREFIX初始化参数的文本在某些操作系统上是区分大小写的。
全局身份验证:使用Oracle高级安全选项,可以通过使用基于ldap的目录服务对用户进行身份验证。

3 管理员身份验证

操作系统安全:
dba必须具有创建和删除文件的操作系统特权。
典型数据库用户不应该具有创建或删除数据库文件的操作系统特权。
管理员安全:
对于SYSDBA和SYSOPER连接:
对DBA按名称进行用户的密码文件和强身份验证方法进行审计。
OS帐户名被审计用于OS身份验证。
对于有特权的用户,OS身份验证优先于密码文件身份验证。
密码文件使用区分大小写的密码。

3.1 操作系统和管理员安全

操作系统安全性:在UNIX和Linux中,dba默认属于oinstall OS组,该组具有创建和删除数据库文件所需的特权。
管理员安全性:权限用户SYSDBA、SYSOPER和SYSASM的连接只有在使用密码文件或操作系统特权和权限进行验证后才能被授权。如果使用OS身份验证,数据库不会使用提供的用户名和密码。如果没有密码文件,如果提供的用户名或密码不在该文件中,或者没有提供用户名和密码,则使用OS身份验证。默认情况下,Oracle数据库12c中的密码文件使用区分大小写的密码。
但是,如果身份验证通过密码文件成功,则使用用户名记录连接。如果身份验证通过操作系统成功,它是一个不记录特定用户 connect /
注意:如果是操作系统的OSDBA或OSOPER组的成员,并且以SYSDBA或SYSOPER的身份连接,那么无论指定的用户名和密码是什么,都将被连接到相关的管理权限。
在Oracle数据库12c中,特权用户可以使用强身份验证方法:Kerberos、SSL或目录身份验证(如果高级安全选项得到许可)。

3.2 OS身份验证

在OS身份验证中,在数据库安装过程中创建组并分配特定的名称,前提是创建OS UNIX或WINDOWS组,并将帐户分配给适当的操作系统定义的组。
在UNIX或WINDOWS组中的成员关系会影响到数据库连接,如下所示:
如果您是OSBACKUP组的成员,并且在连接数据库时指定为SYSBACKUP,则使用SYSBACKUP用户下的SYSBACKUP管理特权连接数据库。
如果您是OSDG组的成员,并且在连接数据库时指定为SYSDG,那么您可以使用SYSDG用户下的SYSDG管理特权连接到数据库。
如果您是OSKM组的成员,并且在连接数据库时指定为SYSKM,那么您可以使用SYSKM用户下的SYSKM管理特权连接到数据库。
如果用户不是这些OS组的成员,那么他们将无法通过OS身份验证作为管理用户进行连接。也就是说,“CONNECT / AS SYSDBA”将失败。但是,用户仍然可以使用其他身份验证机制(例如,网络、密码或基于目录的身份验证)进行连接。要更改操作系统组名,请确保使用在$ORACLE_HOME/rdbms/lib/config.[cs]文件。接下来,关闭所有数据库,然后重新链接Oracle可执行文件
image.png

Windows用户组:
Windows用户组是ORA_%HOMENAME%SYSBACKUP, ORA%HOMENAME%SYSDG, and ORA%HOMENAME%_SYSKM。不能更改这些用户组。

4 练习题

总结如上的用户及管理员的身份认证

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论