×öΪUnix ϵͳ¹ÜÀíÔ±£¬Oracle Êý¾Ý¿â¹ÜÀíÔ±£¬Oracle ERP Ó¦ÓÃϵͳ¹ÜÀíÔ±£¬ÐèÒª²»¶¨ÆÚµØ¸ü¸Ä¸÷ϵͳÖÐÖØÒªÓû§µÄÃÜÂ룬ÒÔ±£Ö¤ÏµÍ³¼°Êý¾ÝµÄ°²È«¡£
µ«ÊÇ£¬ÓÉÓÚËù¹ÜÀíµÄСÐÍ»ú¼°Êý¾Ý¿â¡¢Ó¦ÓÃϵͳ½Ï¶à£¬Ã¿Ô¸ü¸Ä½ü°Ù¸öÓû§µÄÃÜÂ룬²»ÂÛÊÇÃÜÂëµÄÉú³É£¬»¹ÊÇÃÜÂëµÄ¸ü¸Ä£¬¹¤×÷Á¿¾ùºÜ´ó£¬ÓÈÆäÊÇÃÜÂëµÄÉú³É£¬ÎªÁ˼ÓÇ¿°²È«ÐÔ£¬ÃÜÂë²»ÄÜÌ«¼òµ¥£¬×îºÃΪ×ÖĸÓëÊý×ÖµÄËæ»ú×éºÏ¡£µ«´óÁ¿µÄÃÜÂ룬Èô²»½èÖú×Ô¶¯Éú³É£¬ÔòÆä±àÅÅÊÇOracle ERP ϵͳÖÐÓ¦ÓÃϵͳÓû§£¨Ö¸¸÷×ÓϵͳµÄÓû§£¬·ÇÖ¸¾ßÌåÓ¦ÓÃÓû§£©Í¬Ê±Ò²ÊÇOracle Êý¾Ý¿âÓû§£¨ÈçÓ¦ÊÕÄ£¿é£¬Óû§Îª AR£¬AR¼ÈÊÇÊý¾Ý¿âÓû§£¬ÓÖÊÇÓ¦ÓÃÓû§£©£¬¶øÇÒ£¬Ö»ÓÐ applsyspub£¨µÇ¼ϵͳµÄ¹«ÓÃÓû§£©£¬applsys£¨Ó¦Óûù´¡Óû§£©,apps(¾ßÌåÓ¦ÓòÙ×÷Óû§£©Îª±ØÐëΪӦÓÃϵͳÖÐÃÜÂëÓëÊý¾Ý¿âÃÜÂëÒ»ÖÂÍ⣬ÆäËüÓ¦ÓõÄÊý¾Ý¿âÓû§ÃÜÂë¿ÉÒÔÓëÓ¦ÓÃϵͳÖÐÃÜÂëÖв»Ò»Ö£¬Ö»ÐèÔÚ¶ÔÓ¦ÓÃϵͳ½øÐдò patch ¹¤×÷ʱ²ÅÐ轫Æä¸ÄΪһÖ¡£Òò¶ø£¬¿ÉÔÚ´ò patch ǰ£¬ÔÚÓ¦ÓÃϵͳÖн«Ó¦ÓÃϵͳÓû§ÃÜÂëÐÞ¸ÄΪÓëÊý¾Ý¿âÒ»Ö¼´¿É£¬Æ½Ê±²»ÓÃÐÞ¸ÄÆäÃÜÂ룬ÕâÑùÒ»Ôò¼õÉÙÁ˹¤×÷Á¿£¬¶þÔò¼ÓÇ¿ÁËϵͳµÄ°²È«ÐÔ¡£
¸ü¸ÄÊý¾Ý¿âÓû§ÃÜÂë¿Éͨ¹ýÔÚ sqlplus Ö´ÐÐ alter user identified by ÃÜÂë µÄÃüÁî¶øÊµÏÖ£¬Òò¶ø£¬¿ÉÒÔͨ¹ý×Ô¶¯Éú³ÉÃÜÂë½Å±¾µÄ·½Ê½£¬¸ßЧµØÍê³ÉÃÜÂëµÄ¸ü¸Ä¹¤×÷¡£¶ø Unix Óû§ÃÜÂëÔòÓÉÓÚÐèÓɹÜÀíÔ±¸ºÔð¸ü¸ÄÃÜÂëµÄ²¢²»¶à£¬¹Ê¿ÉÔÚ×Ô¶¯Éú³Éºó£¬ÊÖ¹¤½øÐÐÐ޸ġ£
ΪÁËÉú³É½ÏΪ¸´ÔÓµÄÃÜÂ룬ͬʱÌá¸ß¹¤×÷ЧÂÊ£¬ÎÒÓà Excel ×Ô´øµÄ VBA ±àдÁËÒ»¸öС½Å±¾£¬ÔËÐиóÌÐò£¬Ôò×Ô¶¯Éú³ÉÒ»¸ö¸ü¸ÄÓû§ÃÜÂëµÄ½Å±¾£¬Í¬Ê±£¬½«Óû§ÃÜÂë¼Ç¼ÔÚ¹¤×÷±íÉÏ£¬ÒÔ±ãÓÚ´òÓ¡³öÀ´£¬±£´æÔÚÃÜÂë±¾ÖУ¬×öΪ¼Ç¼¡£
Ê×ÏÈ£¬ÐèÔÚ¹¤×÷±íÖеÚÒ»ÁÐÊäÈë¸÷¸öÒªÐÞ¸ÄÃÜÂëµÄÊý¾Ý¿âÓû§µÄÓû§Ãû£¬ÔÚµÚÈýÁÐÊäÈë¸÷
È»ºó£¬ÔËÐнű¾ gen_pass_oracle £¬Ôò×Ô¶¯Éú³ÉOracle Óû§µÄÏàÓ¦µÄÃÜÂ룻ÔËÐнű¾gen_pass_unix £¬Ôò×Ô¶¯Éú³Éunix ²Ù×÷ϵͳÓû§µÄÏàÓ¦µÄÃÜÂë¡£ Éú³ÉµÄOracle Êý¾Ý¿âÓû§ÃÜÂë±£´æÔÚ change_pass.sql ÖУ¬¿ÉÔÚ sqlplus Öе÷Óøýű¾¡£Éú³ÉµÄUnix Óû§ÃÜÂë±£´æÔÚchange_pass.txt ÖУ¬ÐèÊÖ¹¤Öð¸öµØ¸ü¸ÄÃÜÂë¡£ ¿Éͨ¹ýÔÚ³ÌÐòÊײ¿ÐÞ¸Ä pass_length µÄÖµµÄ·½·¨£¬È·¶¨Éú³ÉµÄÃÜÂëµÄ³¤¶È£»¿Éͨ¹ýÔÚ³ÌÐòÊײ¿ÐÞ¸Ä start_asc µÄ·½·¨£¬È·¶¨ÃÜÂëµÄ×é³É 0-9,A-Z»¹Êǽö A-ZÆäÖ÷ҪʵÏÖΪ£ºÍ¨¹ý¼ì²é¹¤×÷±íÖÐÿһÐеÚ1ÁУ¨»òµÚ3ÁУ©ÊÇ·ñΪ¿Õ£¬ÅжÏÊÇ·ñ½áÊøÃÜÂëÉú³É¹¤×÷¡£Èô·Ç¿Õ£¬¼´ÓÐÓû§Ãû£¬Ôò½øÐÐÑ»·£¬Éú³ÉÔÚ³ÌÐòÍ·²¿¶¨ÒåµÄÖ¸¶¨³¤¶ÈµÄÃÜÂë´®¡£ÃÜÂë´®ÖеÄ×Ö·ûΪͨ¹ýÆðʼ×Ö·ûµÄ ascii Öµ¼ÓÉÏËæ»úÊý²úÉúµÄËæ»úÖµµÃµ½µÄÐ嵀 ascii Öµ£¬ÔÙ½«Æäת»»Îª×Ö·ûÐÍ£¬²¢¼ÓÈëÃÜÂë´®ÖС£µ±ÃÜÂë´®µÄ³¤¶È´ïµ½Ö¸¶¨³¤¶Èʱ£¬½«Æä×éºÏΪһ¸ösql Óï¾äдÈëÎļþÖУ¬Í¬Ê±£¬ÔÚ¸ÃÐеĵÚ2ÁУ¨»òµÚ4ÁУ©ÖÐдÈë¸ÃÃÜÂë´®¡£
ͬʱ£¬¿¼Âǵ½ÔÚ Excel ÖлὫ¡°=¡±¿ªÍ·µÄ×Ö·û´®µ±×÷¹«Ê½¶Ô´ý£¬¹Ê£¬ÔÚÉú³ÉÃÜÂ봮ʱ£¬½«µÈÓÚ"="µÄascii Öµ¹ýÂË¡£ÓÃÀàËÆ·½·¨£¬¿ÉʹÉú³ÉµÄÃÜÂë´®Öв»°üº¬ÆäËü²»Ïë°üº¬µÄ×Ö·û¡£
ͨ¹ýʹÓÃÕâÖÖ·½Ê½£¬Éú³É²¢ÐÞ¸ÄÃÜÂëµÄ¹¤×÷Á¿µÃµ½´ó´ó¼õÉÙ£¬°²È«ÐԵõ½Ìá¸ß¡£
ʵ¼ÊÉÏ£¬ÕâÖÖ·½·¨²úÉúµÄÃÜÂë²»ÏÞÓÚ 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()
¡¡¡¡ 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
¡¡¡¡ start_asc = 48 ' 0
¡¡¡¡ Rem start_asc = 65 ' A
¡¡¡¡ rem ÓÉÓÚ unix ÃÜÂëÖ§³Ö´óСд£¬¹Ê£¬ÊÓËùÑ¡ÔñµÄÆðʼ×Öĸ£¬¾ö¶¨Ëæ»úÊýµÄ·¶Î§£¬ÒÔÈ·±£
¡¡¡¡ rnd_base = 122 - start_asc
¡¡¡¡ ?
¡¡¡¡ rem ´ò¿ªÎļþ£¬ÓÃÓÚÊä³öÉú³ÉµÄ¸ÄÃÜÂëµÄ½Å±¾
¡¡¡¡ Open "c:change_pass.txt" For Output As #1
¡¡¡¡rem ͬʱ£¬ÔÚ¹¤×÷±íÉϼǼÏàÓ¦µÄÃÜÂ룬ÒÔ±ã´òÓ¡³öÀ´±¸×÷Ϊ¼Ç¼£¬´Ë´¦ÎªÏÈд±êÌâ
¡¡¡¡ Cells(1, 3) = "Username": Cells(1, 4) = "Password"
¡¡¡¡ row_num = 2
¡¡¡¡ rem ÈôµÚÈýÁзǿգ¬Ôò´´½¨ÃÜÂ룬·ñÔòÍ˳ö ¡¡¡¡Do While Cells(row_num, 3) <> ""
¡¡¡¡ temp_str = ""
¡¡¡¡ For bit_count = 1 To pass_length
¡¡¡¡ char_value = start_asc + Int(Rnd(1) * rnd_base)
¡¡¡¡rem 91-94 Ϊ [ ] ^ _ `
¡¡¡¡ rem Òò²»Ô¸ÔÚunix ÃÜÂë´®Öаüº¬¸ÃÀà×Ö·û£¬¹Ê£¬Í¨¹ý¼õÉÙÒÑÔö´óµÄ¼ÆÊýÆ÷ÒÔ±£Ö¤ÃÜÂëµÄ
³¤¶È£¬Í¬Ê±£¬²»½«Æä¼ÆÈëÃÜÂë´®ÖУ¬ÒÔÅųýËüÃÇ
¡¡¡¡ If (char_value >= 58 And char_value <= 64) Or (char_value >= 91 And char_value <= 96) Then
¡¡¡¡ bit_count = bit_count - 1
¡¡¡¡ Else
¡¡¡¡ temp_str = temp_str + Chr$(char_value)
¡¡¡¡ End If
¡¡¡¡ Next bit_count
¡¡¡¡ Print #1, "user " + Cells(row_num, 1) + " : " + temp_str
¡¡¡¡ Cells(row_num, 4) = temp_str
¡¡¡¡ rem »ñÈ¡ÏÂÒ»ÐÐ
¡¡¡¡ row_num = row_num + 1
¡¡¡¡ Loop
¡¡¡¡ rem ËùÓÐÓû§µÄÃÜÂëÒÑÉú³É£¬¹Ø±ÕÎļþ
¡¡¡¡ Close #1
¡¡¡¡ End Sub