sql - 如何在 Informix 中更改用户名?
问题描述
如何更改用户名Informix
?
select * from sysusers;
下面列出
username John.Doe
usertype R
priority 5
password
defrole admin
我想将用户名更新为小写,john.doe
但似乎我们不能update sysusers set username = xxx
像往常一样对其进行更新。我们应该使用什么命令来做到这一点?
解决方案
有人跑了:
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
. 无法更改对象的所有权。“解决方法”是删除并重新创建具有正确所有者的对象。请注意,删除对象会丢失授予该对象的所有权限,并且还会破坏构建在已删除表(或视图)之上的视图。
推荐阅读
- asp.net - 一个解决方案,两个 WebForm 项目 - 从另一个访问一个页面。VS2019
- xaml - DataGridTextColumn 前景 [主题资源] 在暗模式下没有变化
- ios - 不能专门化非通用定义
- r - 修改 EXPSS 汇总功能
- reactjs - React Redux .map 项目,并在
获取数据以显示每个项目 - amazon-web-services - Sequelize Serverless 离线迁移出错
- javascript - 如何在javascript中的给定数据范围内每天每小时过滤一个数据对象
- java - 如何将同一个文件包含到两个不同的包中 - Yocto
- node.js - S3 存储桶中的图像未显示在服务器上
- javascript - 将 CSS 过滤器应用于片段着色器