是否可以在 oracle 中存储名字/姓氏/全名以及可能的 oracle 用户帐户的附加信息?
我查看表 dba_users 但它不包含此类信息。
我需要确保将 oracle 帐户映射到一个唯一的人。所以除了名字之外,理想情况下我需要在名字之上有一个核心身份信息或电子邮件地址。
在 oracle 中如何确保这一点?
是否可以在 oracle 中存储名字/姓氏/全名以及可能的 oracle 用户帐户的附加信息?
我查看表 dba_users 但它不包含此类信息。
我需要确保将 oracle 帐户映射到一个唯一的人。所以除了名字之外,理想情况下我需要在名字之上有一个核心身份信息或电子邮件地址。
在 oracle 中如何确保这一点?
如果你想将数据库帐户名称与其他信息相匹配,你必须创建自己的表来跟踪它。Oracle 没有地方可以为您做这件事。
有几种方法可以为每个真实的人强制使用单个用户帐户:
命名约定:为您的数据库帐户使用通用的命名约定,该约定建立在某种形式的用户名字和姓氏之上:例如
john_smith
或smithj
。文书工作:让每个用户填写帐户申请表并在创建帐户之前验证提供的信息。保留表格的纸质副本或以电子方式存储信息并将其映射到自定义表格中的帐户名称。听起来有点像你已经要去的地方了,而且绝对是最简单的方法。
如果您的数据库在 Windows 上运行并且您拥有集中式用户帐户(与 Active Directory 一样),则可以使用 Windows 身份验证,如下所述:https ://docs.oracle.com/en/database/oracle/oracle-database/ 19/ntqrf/authenticating-database-users-with-windows.html#GUID-6406D5F4-32FD-4D16-929F-6E5893926C29
如果您不怕增加一点复杂性,您可以使用带有自签名证书的 PKI 身份验证而不是密码身份验证。这样每个用户都会获得自己的证书,该证书只能映射到一个帐户。请参阅此处:https ://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-secure-sockets-layer-authentication.html#GUID-6AD89576-526F-4D6B-A539-ADF4B840819F
用户帐户在数据库中是唯一的。您不能使用相同的帐户名创建两个或更多用户。因此,保持映射一对一(数据库中的帐户到一个人),即使用此帐户,以确保密码仅由他的人使用;)不需要更多信息。
您的公司安全策略应规定将帐户颁发给个人,仅供该个人使用,不得在人与人之间共享。还应指定命名约定。这应该足够了。
更重要的是,谁在创建这些帐户?
需要有适当的程序来管理这些帐户的创建(和销毁)。(你为离开公司的人准备了多少个数据库帐户?你的答案应该是没有)。
另外,是什么让您认为每个人都有“名/姓/全名”?
阅读这篇部分有趣但最终真实的文章:
Falsehoods programmers believe about Names