是否可以在Oracle的Users表中添加自定义字段?

时间:2013-09-29 23:46:05

标签: oracle

如果是,请问如何做到这一点?

我使用“system”用户连接,我尝试了以下命令,但它不起作用。

alter table sys.all_users add Piwpiw varchar(1);

我收到错误消息,指出此表不存在。

但是,当我查询它时,它可以工作。

select * from SYS.all_users;

返回大约30个用户;

谢谢。

2 个答案:

答案 0 :(得分:3)

如果可以,那将是一个非常糟糕的主意。修改数据字典中的对象会立即使您的数据库不受支持,并且当您想要执行诸如应用补丁集或升级数据库之类的操作时,几乎肯定会产生问题。当您尝试执行诸如修改用户之类的操作时,很可能会导致某些递归SQL语句失败。您甚至不应该在SYSSYSTEM架构中创建新对象。

如果您要记录有关用户的其他信息,请在存储此信息的SYSSYSTEM以外的架构中创建其他表格。

假设您将任何Oracle提供的脚本创建的任何用户视为“默认用户”,无论是在数据库安装时还是以后运行,并假设您没有手动创建具有相同名称的用户与Oracle脚本创建的任何用户一样,最简单的选择可能是在线提供各种default password lists之一并与其中列出的用户进行比较。

答案 1 :(得分:0)

登录到Oracle数据库的典型应用程序将具有某种管理模块,其中创建应用程序用户并授予适当的权限。 其他用户属性存储在应用程序模式用户拥有的单独的表* my_app_users *中。

要列出应用程序用户,请加入all_users和my_app_users,如下所示:

select u.username, m.firstname, m.lastname, m.comments, m.attrib1, m.attrib2, etc.. 
from 
  all_users u, 
  my_app_users m
where
  u.username = m.username;