自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

修改Oracle用戶密碼的方法

數(shù)據(jù)庫(kù) Oracle
作為Oracle數(shù)據(jù)庫(kù)的管理員,需要不定期地更改各系統(tǒng)中重要用戶的密碼,保障數(shù)據(jù)庫(kù)的安全,下面就教您一個(gè)修改Oracle用戶密碼的方法。

如何修改Oracle用戶密碼呢?這是很多人都提到過(guò)的問(wèn)題,下面就教您一個(gè)Oracle用戶密碼的方法,希望對(duì)您能有所幫助。

做為Unix 系統(tǒng)管理員,Oracle 數(shù)據(jù)庫(kù)管理員,Oracle ERP 應(yīng)用系統(tǒng)管理員,需要不定期地更改各系統(tǒng)中重要用戶的密碼,以保證系統(tǒng)及數(shù)據(jù)的安全。 

但是,由于所管理的小型機(jī)及數(shù)據(jù)庫(kù)、應(yīng)用系統(tǒng)較多,每月更改近百個(gè)用戶的密碼,不論是密碼的生成,還是密碼的更改,工作量均很大,尤其是密碼的生成,為了加強(qiáng)安全性,密碼不能太簡(jiǎn)單,***為字母與數(shù)字的隨機(jī)組合。但大量的密碼,若不借助自動(dòng)生成,則其編排是Oracle ERP 系統(tǒng)中應(yīng)用系統(tǒng)用戶(指各子系統(tǒng)的用戶,非指具體應(yīng)用用戶)同時(shí)也是Oracle 數(shù)據(jù)庫(kù)用戶(如應(yīng)收模塊,用戶為 AR,AR既是數(shù)據(jù)庫(kù)用戶,又是應(yīng)用用戶),而且,只有 applsyspub(登錄系統(tǒng)的公用用戶),applsys(應(yīng)用基礎(chǔ)用戶),apps(具體應(yīng)用操作用戶)為必須為應(yīng)用系統(tǒng)中密碼與數(shù)據(jù)庫(kù)密碼一致外,其它應(yīng)用的Oracle用戶密碼可以與應(yīng)用系統(tǒng)中密碼中不一致,只需在對(duì)應(yīng)用系統(tǒng)進(jìn)行打 patch 工作時(shí)才需將其改為一致。因而,可在打 patch 前,在應(yīng)用系統(tǒng)中將應(yīng)用系統(tǒng)用戶密碼修改為與數(shù)據(jù)庫(kù)一致即可,平時(shí)不用修改其密碼,這樣一則減少了工作量,二則加強(qiáng)了系統(tǒng)的安全性。 

更改數(shù)據(jù)庫(kù)用戶密碼可通過(guò)在 sqlplus 執(zhí)行 alter user identified by 密碼 的命令而實(shí)現(xiàn),因而,可以通過(guò)自動(dòng)生成密碼腳本的方式,高效地完成密碼的更改工作。而 Unix 用密碼則由于需由管理員負(fù)責(zé)更改密碼的并不多,故可在自動(dòng)生成后,手工進(jìn)行修改。 
為了生成較為復(fù)雜的密碼,同時(shí)提高工作效率,我用 Excel 自帶的 VBA 編寫(xiě)了一個(gè)小腳本,運(yùn)行該程序,則自動(dòng)生成一個(gè)更改用戶密碼的腳本,同時(shí),將用戶密碼記錄在工作表上,以便于打印出來(lái),保存在密碼本中,做為記錄。 首先,需在工作表中***列輸入各個(gè)要修改密碼的數(shù)據(jù)庫(kù)用戶的用戶名,在第三列輸入各然后,運(yùn)行腳本 gen_pass_oracle ,則自動(dòng)生成Oracle 用戶的相應(yīng)的密碼;運(yùn)行腳本 gen_pass_unix ,則自動(dòng)生成unix 操作系統(tǒng)用戶的相應(yīng)的密碼。生成的Oracle用戶密碼保存在 change_pass.sql 中,可在 sqlplus 中調(diào)用該腳生成的Unix 用戶密碼保存在 change_pass.txt 中,需手工逐個(gè)地更改密碼。 

可通過(guò)在程序首部修改 pass_length 的值的方法,確定生成的密碼的長(zhǎng)度;可通過(guò)在程序首部修改 start_asc 的方法,確定密碼的組成 0-9,A-Z還是僅 A-Z 其主要實(shí)現(xiàn)為:通過(guò)檢查工作表中每一行第1列(或第3列)是否為空,判斷是否結(jié)束密碼生成工作。若非空,即有用戶名,則進(jìn)行循環(huán),生成在程序頭部定義的指定長(zhǎng)度的密碼串。密碼串中的字符為通過(guò)起始字符的 ascii 值加上隨機(jī)數(shù)產(chǎn)生的隨機(jī)值得到的新的 ascii 值,再將其轉(zhuǎn)換為字符型,并加入密碼串中。當(dāng)密碼串的長(zhǎng)度達(dá)到指定長(zhǎng)度時(shí),將其組合為一個(gè) sql 語(yǔ)句寫(xiě)入文件中,同時(shí),在該行的第2列(或第4列)中寫(xiě)入該密碼串。 同時(shí),考慮到在 Excel 中會(huì)將“=”開(kāi)頭的字符串當(dāng)作公式對(duì)待,故,在生成密碼串時(shí),將等于"="的ascii 值過(guò)濾。用類似方法,可使生成的密碼串中不包含其它不想包含的字符。

通過(guò)使用這種方式,生成并修改密碼的工作量得到大大減少,安全性得到提高。 
實(shí)際上,這種方法產(chǎn)生的密碼不限于 unix 與 Oracle, 可用于各種操作系統(tǒng)中重要用戶

  1. Sub gen_pass_app()    
  2. Dim bit_count as integer ’循環(huán)變量, 密碼中位數(shù)計(jì)數(shù)器    
  3. dim row_num as integer ’需生成密碼的用戶名信息開(kāi)始的行號(hào)    
  4. dim rnd_base As Integer ’隨機(jī)數(shù)種子    
  5. Dim char_value As Integer ’密碼中每個(gè)字符的 ascii 值    
  6. Dim temp_str As String ’密碼串    
  7. Dim username(50) As String ’用戶名    
  8. dim pass_length as integer ’定義生成的密碼的長(zhǎng)度    
  9. dim start_asc as integer ’ 定義從哪個(gè)字符開(kāi)始生成    
  10. pass_length = 8 ’ 設(shè)定密碼長(zhǎng)度為 8 位    
  11. Rem start_asc = 48 ’ 設(shè)定密碼從 0 開(kāi)始    
  12. start_asc = 65 ’ 設(shè)定密碼從 A 開(kāi)始    
  13. rem 由于 Oracle 數(shù)據(jù)庫(kù)用戶密碼不區(qū)分大小寫(xiě),故,視所選擇的起始字母,決定隨機(jī)數(shù)   
  14. rnd_base = 90 - start_asc    
  15. ?    
  16. rem 打開(kāi)文件,用于輸出生成的改密碼的腳本    
  17. Open "c:change_pass.sql" For Output As #1    
  18. rem 同時(shí),在工作表上記錄相應(yīng)的密碼,以便打印出來(lái)備作為記錄,此處為先寫(xiě)標(biāo)題    
  19. Cells(1, 1) = "Username": Cells(1, 2) = "Password"    
  20. Cells(1, 3) = "Username": Cells(1, 4) = "Password"    
  21. rem 先生成 apps 的密碼,但腳本中加上注釋,因 apps密碼必須與應(yīng)用程序一起改    
  22. rem 先初始化密碼串為空白    
  23. temp_str = ""    
  24. For bit_count = 1 To pass_length    
  25. char_value = start_asc + Int(Rnd(1) * rnd_base)    
  26. rem 此處為為防=號(hào)引起 excel 誤認(rèn)為是公式,從而程序出錯(cuò)。    
  27. If char_value = 61 Then    
  28. char_value = 62    
  29. End If    
  30. rem 組合成密碼    
  31. temp_strtemp_str = temp_str + Chr$(char_value)    
  32. Next bit_count    
  33. rem 將生成的 apps 密碼輸出到腳本文件    
  34. Print #1, "REM alter user apps" + " identified by " + temp_str + ";"    
  35. rem 同時(shí),記錄在工作表上    
  36. Cells(2, 3) = "APPS": Cells(2, 4) = temp_str    
  37. rem 需生成密碼的用戶名從 row_num 行開(kāi)始    
  38. row_num = 2    
  39. rem 若***列非空,則創(chuàng)建密碼,否則退出   Do While Cells(row_num, 1) <> ""    
  40. temp_str = ""    
  41. For bit_count = 1 To pass_length    
  42. char_value = start_asc + Int(Rnd(1) * rnd_base)    
  43. If char_value = 61 Then    
  44. char_value = 62    
  45. End If    
  46. temp_strtemp_str = temp_str + Chr$(char_value)    
  47. Next bit_count    
  48. Print #1, "alter user " + Cells(row_num, 1) + " identified by " + temp_str +    
  49. Cells(row_num, 2) = temp_str    
  50. rem 獲取下一行    
  51. row_numrow_num = row_num + 1    
  52. Loop    
  53. rem 所有用戶的密碼已生成,關(guān)閉文件    
  54. Close #1    
  55. End Sub    
  56. ?    
  57. Sub gen_pass_unix()    
  58.   Dim bit_count as integer ’循環(huán)變量, 密碼中位數(shù)計(jì)數(shù)器    
  59. dim row_num as integer ’需生成密碼的用戶名信息開(kāi)始的行號(hào)    
  60. dim rnd_base As Integer ’隨機(jī)數(shù)種子    
  61. Dim char_value As Integer ’密碼中每個(gè)字符的 ascii 值    
  62. Dim temp_str As String ’密碼串    
  63. Dim username(50) As String ’用戶名    
  64. dim pass_length as integer ’定義生成的密碼的長(zhǎng)度    
  65. dim start_asc as integer ’ 定義從哪個(gè)字符開(kāi)始生成    
  66. pass_length = 8    
  67. start_asc = 48 ’ 0    
  68. Rem start_asc = 65 ’ A    
  69. rem 由于 unix 密碼支持大小寫(xiě),故,視所選擇的起始字母,決定隨機(jī)數(shù)的范圍,以確保   
  70. rnd_base = 122 - start_asc    
  71. ?    
  72. rem 打開(kāi)文件,用于輸出生成的改密碼的腳本    
  73. Open "c:change_pass.txt" For Output As #1    
  74.   rem 同時(shí),在工作表上記錄相應(yīng)的密碼,以便打印出來(lái)備作為記錄,此處為先寫(xiě)標(biāo)題    
  75. Cells(1, 3) = "Username": Cells(1, 4) = "Password"    
  76. row_num = 2    
  77. rem 若第三列非空,則創(chuàng)建密碼,否則退出   Do While Cells(row_num, 3) <> ""    
  78. temp_str = ""    
  79. For bit_count = 1 To pass_length    
  80. char_value = start_asc + Int(Rnd(1) * rnd_base)    
  81.   rem 91-94 為 [ ] ^ _ `    
  82. rem 因不愿在unix 密碼串中包含該類字符,故,通過(guò)減少已增大的計(jì)數(shù)器以保證密碼的長(zhǎng)度,同時(shí),不將其計(jì)入密碼串中,以排除它們    
  83. If (char_value >= 58 And char_value <= 64) Or (char_value >= 91 And char_value <= 96) Then    
  84. bit_countbit_count = bit_count - 1    
  85. Else    
  86. temp_strtemp_str = temp_str + Chr$(char_value)    
  87. End If    
  88. Next bit_count    
  89. Print #1, "user " + Cells(row_num, 1) + " : " + temp_str    
  90. Cells(row_num, 4) = temp_str    
  91. rem 獲取下一行    
  92. row_numrow_num = row_num + 1    
  93. Loop    
  94. rem 所有用戶的密碼已生成,關(guān)閉文件    
  95. Close #1    
  96. End Sub  

 

 

 

 

【編輯推薦】

oracle多列子查詢的實(shí)現(xiàn)

Oracle內(nèi)存結(jié)構(gòu)--SGA

oracle connect角色權(quán)限的變化

ORACLE數(shù)據(jù)庫(kù)設(shè)置編碼

oracle多表查詢實(shí)例

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-04-07 11:04:52

Oracle用戶密碼

2010-04-08 18:21:56

Oracle用戶密碼

2010-04-19 17:10:53

Oracle用戶密碼

2009-10-23 17:51:51

Oracle用戶密碼

2010-10-29 11:45:09

oracle用戶密碼

2010-11-08 11:30:46

SQL Server

2009-11-04 10:50:48

Oracle創(chuàng)建用戶授

2010-10-29 11:38:50

Oracle syst

2011-04-06 13:04:35

SQL Server 密碼修改

2017-08-31 15:57:53

數(shù)據(jù)Oracle用戶密碼

2011-03-22 10:57:30

Oracle添加用戶賦權(quán)

2010-11-16 16:00:40

Oracle默認(rèn)用戶

2010-04-28 16:59:16

2018-03-27 08:24:32

Linux服務(wù)器密碼

2010-10-14 11:48:20

MySQL賬戶密碼

2011-05-18 14:00:44

MySQL默認(rèn)密碼

2010-04-20 16:46:41

Oracle數(shù)據(jù)庫(kù)密碼

2010-11-16 16:23:04

Oracle修改用戶

2010-11-19 13:19:26

Oracle歸檔日志

2010-04-23 13:53:29

Oracle密碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)