HANA-激活/停用特定数据库用户的过程

问题描述

我正在尝试在HANA中开发一个过程,该过程可以激活和停用特殊的数据库用户,并记录这方面的所有信息。

我喜欢用户在激活后始终具有相同的初始密码-但在登录时被迫更改它。

您是否知道如何实现此目的?

当前,由于密码政策,我失败了。我不想触碰这项政策,它说不允许使用最后5个密码。

是否可以通过随机功能为用户提供五次密码,第六次为默认密码?

欢迎就实施,改进和进一步的想法提供任何反馈。

谢谢。

解决方法

您要求反馈:

  • 解决可能已设置的安全策略 目的不是一个好主意

  • 自己实施日志记录似乎不是一个好主意 要么。 SAP HANA提供审核这一功能。代替 编写日志记录代码,请考虑设置适当的审核策略

  • 让用户使用与 那么需要改变的是相当不安全的。字面上就像 把房子的钥匙和门一起放在门外 进入后交换锁的指令。这不是 安全工作。

  • COMMIT之后不需要手动ALTER USER

  • 看到您的代码期望一个完整的用户列表,看起来一个潜在的使用场景可能是测试或培训用户。如果是这种情况,建议不要完全重新打扰用户。
    要么创建永久的一次性账户(例如TRAIN01-2020-01 ... TRAIN01-2020-01),或者每当有一组新的 用户应使用帐户。这样可以避免“跳舞 周围”,共5个最后一个密码策略。

  • 为清楚明确的程序选择名称,该代码应该做什么。 "START" / "STOP"与代码无关。

  • 将已停用帐户的状态保留在表中的目的是什么? HANA跟踪当前状态,包括停用时间戳记。

  • 回到“仅使用5个随机密码”的想法,然后再将密码设置为众所周知的密码:在以前生成随机密码的情况下,代码中没有任何内容可以处理。另外:通常,密码策略还会限制每天更改密码的频率-正是为了避免此类策略。

但是希望这会有所帮助。

,

我认为当有人尝试重新发明轮子和变通方法安全策略时,给出任何建议是很糟糕的,因为其他人将需要支持这种可怕的解决方案。

但是无论如何,如果最终要设置一个所需的密码,为什么还要输入任何随机密码呢?只需循环输入6个预定义的密码,然后一个接一个地设置即可。 对于审核,您可以为该用户创建审核策略,并使用支持的标准工具来跟踪更改。

编辑: 这是有关“循环遍历6个预定义密码”的代码:

do( in iv_base_pwd nvarchar(20) => 'qwe')
begin
  declare lv_pwd_count int;
  declare lv_i int := 0;
  
  select value
    into lv_pwd_count
  from m_password_policy
  where property = 'last_used_passwords';
  
  while lv_i <= lv_pwd_count do
    execute immediate 'alter user myuser password ''' || iv_base_pwd || '_' || lv_i | '''';
    lv_i := lv_i + 1;
  end while;

  execute immediate 'alter user myuser password ''' || iv_base_pwd || '''';;
end;

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...