科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道生成Oracle用户密码的通用小程序

生成Oracle用户密码的通用小程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

做为Unix 系统管理员,Oracle 数据库管理员,Oracle ERP 应用系统管理员,需要不定期地更改各系统中重要用户的密码,以保证系统及数据的安全。

作者:51CTO.COM 2007年10月18日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

 通过使用这种方式,生成并修改密码的工作量得到大大减少,安全性得到提高。

  实际上,这种方法产生的密码不限于 unix 与 Oracle, 可用于各种操作系统中重要用户

  Sub gen_pass_app()

  Dim bit_count as integer '循环变量, 密码中位数计数器

  dim row_num as integer '需生成密码的用户名信息开始的行号

  dim rnd_base As Integer '随机数种子

  Dim char_value As Integer '密码中每个字符的 ascii 值

  Dim temp_str As String '密码串

  Dim username(50) As String '用户名

  dim pass_length as integer '定义生成的密码的长度

  dim start_asc as integer ' 定义从哪个字符开始生成

  pass_length = 8 ' 设定密码长度为 8 位

  Rem start_asc = 48 ' 设定密码从 0 开始

  start_asc = 65 ' 设定密码从 A 开始

  rem 由于 Oracle 数据库用户密码不区分大小写,故,视所选择的起始字母,决定随机数

  rnd_base = 90 - start_asc

  ?

  rem 打开文件,用于输出生成的改密码的脚本

  Open "c:change_pass.sql" For Output As #1

  rem 同时,在工作表上记录相应的密码,以便打印出来备作为记录,此处为先写标题

  Cells(1, 1) = "Username": Cells(1, 2) = "Password"

  Cells(1, 3) = "Username": Cells(1, 4) = "Password"

  rem 先生成 apps 的密码,但脚本中加上注释,因 apps密码必须与应用程序一起改

  rem 先初始化密码串为空白

  temp_str = ""

  For bit_count = 1 To pass_length

  char_value = start_asc + Int(Rnd(1) * rnd_base)

  rem 此处为为防=号引起 excel 误认为是公式,从而程序出错。

  If char_value = 61 Then

  char_value = 62

  End If

  rem 组合成密码

  temp_str = temp_str + Chr$(char_value)

  Next bit_count

  rem 将生成的 apps 密码输出到脚本文件

  Print #1, "REM alter user apps" + " identified by " + temp_str + ";"

  rem 同时,记录在工作表上

  Cells(2, 3) = "APPS": Cells(2, 4) = temp_str

  rem 需生成密码的用户名从 row_num 行开始

  row_num = 2

  rem 若第一列非空,则创建密码,否则退出 Do While Cells(row_num, 1) <>""

  temp_str = ""

  For bit_count = 1 To pass_length

  char_value = start_asc + Int(Rnd(1) * rnd_base)

  If char_value = 61 Then

  char_value = 62

  End If

  temp_str = temp_str + Chr$(char_value)

  Next bit_count

  Print #1, "alter user " + Cells(row_num, 1) + " identified by " + temp_str +

  Cells(row_num, 2) = temp_str

  rem 获取下一行

  row_num = row_num + 1

  Loop

  rem 所有用户的密码已生成,关闭文件

  Close #1

  End Sub

  ?

  Sub gen_pass_unix()

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章