使用Oracle的CREATE SEQUENCE作为安全随机

时间:2014-07-28 15:49:54

标签: oracle security random sequence

我想知道Oracle的NOORDER语句(enabled by default)的CREATE SEQUENCE是否可以用作安全的随机数生成器? 我的意思是,这是真的随机还是可以预测?

我无法找到有关此规范的文档。

提前致谢。 柠檬

1 个答案:

答案 0 :(得分:2)

没有。如果您想要随机数,请使用dbms_crypto package

指定NOORDER的序列仍将在非RAC系统中提供顺序的有序数字。但是,如果使用RAC,则每个节点将具有单独的值缓存,并且一个节点将生成同时大于其他节点的值。例如,如果您有一个3节点集群和一个缓存为20的序列,则节点1将缓存值1-20,节点2将缓存值21-40,而节点3将缓存值41-60。如果节点3上的会话请求nextval,则它将获得41.然后,如果节点1上的另一个会话请求nextval,则它将获得值1.节点3上的下一个请求将获得42,节点1上的下一个请求将获得2,​​节点2上的下一个请求将获得21.当然,一旦每个节点耗尽其缓存,它将缓存接下来的20个值。如果一个节点持续获得更多nextval个请求,则它可以比其他节点上的nextval更进一步。