我试图查看是否有办法在未来三个月内自动设置用户的VALID UNTIL值,而无需输入文字日期。尝试以下方法:
alter user rchung set valuntil = dateadd(day,90,GETDATE());
alter user rchung set valuntil = select dateadd(day,90,GETDATE());
都因语法错误而失败。
alter user rchung valid until dateadd(day,90,GETDATE());
也因语法错误而失败。
任何人都有这方面的成功吗?
TIA, 富
答案 0 :(得分:1)
看来这是对PostgreSQL方面的限制。
创建用户,就像Postgres中的几乎所有实用程序语句一样, 不做任何表达式评估---参数必须是 简单的文字常量。
VALID UNTIL programmatically in SQL
由于Amazon Redshift不支持像PostgreSQL这样的plpgsql,因此客户端脚本确实是唯一的选择。如果您正在使用psql的半现代版本(9.3+),则以下工作:
select dateadd(day,90,GETDATE()) as expiry; \gset
alter user myuser valid until :'expiry';