0

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

我使用“系统”用户连接,我尝试了以下命令,但没有成功。

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

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

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

select * from SYS.all_users;

返回大约 30 个用户;

谢谢你。

4

2 回答 2

3

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

如果您想要记录有关用户的一些附加信息,请在存储此信息SYSSYSTEM存储此信息的架构中创建一个附加表。

假设您将由任何 Oracle 交付的脚本创建的任何用户视为“默认用户”,无论它是否在数据库安装时或之后运行,并假设您没有手动创建与任何用户同名的用户一个 Oracle 脚本将创建,最简单的选择可能是获取在线可用的各种默认密码列表之一,并与那里列出的用户进行比较。

于 2013-09-29T23:49:49.263 回答
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;   
于 2013-09-30T20:47:54.347 回答