首页 > 解决方案 > 如何在 Informix 中更改用户名?

问题描述

如何更改用户名Informix

select * from sysusers;下面列出

username  John.Doe
usertype  R
priority  5
password
defrole   admin

我想将用户名更新为小写,john.doe但似乎我们不能update sysusers set username = xxx像往常一样对其进行更新。我们应该使用什么命令来做到这一点?

标签: sqlinformix

解决方案


有人跑了:

GRANT RESOURCE TO "John.Doe";

您需要撤销他们的 RESOURCE 权限:

REVOKE RESOURCE FROM "John.Doe";

但这让 John.Doe 拥有 CONNECT 特权,您还需要撤销该特权。如果您撤销某人的 DBA 特权,他们也会保留 CONNECT 特权(而不是 RESOURCE 特权)。

REVOKE CONNECT FROM "John.Doe";

然后您可以重新授予小写用户名的 RESOURCE 权限:

GRANT RESOURCE TO "john.doe";

请注意,每次都必须引用用户名,既要保持区分大小写,又因为中间的 既不是john.doe也不John.Doe是有效标识符。.

这些更改仅影响 SysUsers 表。由 创造的任何资源John.Doe仍归 拥有John.Doe,而不归john.doe. 无法更改对象的所有权。“解决方法”是删除并重新创建具有正确所有者的对象。请注意,删除对象会丢失授予该对象的所有权限,并且还会破坏构建在已删除表(或视图)之上的视图。


推荐阅读