根据您的描述,您已经为用户U1赋予了T100表的查询权限,但是在使用pgadmin登录时,该用户可以看到其他没有权限的表的创建语句。这可能是因为该用户被授予了某些数据库级别的权限,例如查看元数据或其他表的定义。您可以通过以下步骤来解决这个问题:
du U1
REVOKE <权限名称> ON DATABASE <数据库名称> FROM U1;
例如,如果用户U1被授予了查看元数据的权限,您可以使用以下命令来撤销该权限:
REVOKE SELECT ON pg_catalog.pg_tables FROM U1;
ALTER TABLE <表名> OWNER TO <其他用户或角色>;
例如,如果您想将表aaa的所有权转移到用户U2,您可以使用以下命令:
ALTER TABLE aaa OWNER TO U2;
这样,即使用户U1使用pgadmin登录并尝试查看表aaa的定义,也会收到“没有权限”的错误消息。
希望这些步骤能够帮助您解决问题。同时,为了保护敏感信息,建议您在授权时仔细考虑每个用户或角色的权限,并仅授予必要的权限。