You are hereExcel İle Oracle Database Denetimi
Excel İle Oracle Database Denetimi
Bu script, Excel içinden macro marifetiyle Oracle sunucusuna bağlanarak güvenlik denetiminde kullanılmak üzere bazı tablolardan sorgu yapar.
1. Veritabanı Yöneticisi'ni veya Yardım Masası'nı arayın ve bilgisayarınıza Oracle Client'ının yüklenmesini isteyin.
2. Veritabanı Yöneticisi'ni arayın ve veritabanında kendinize SELECT ANY DICTIONARY system privilege'i olan bir kullanıcı tanımlamasını isteyin.
3. Bu işlemler tamamlanınca Excel'i açın.
4. ALT + F11'e basarak Visual Basic Denetleyicisi'ne geçin.
5. Menüden Insert > Module ile projenize yeni bir modül ekleyin. Veritabanı yöneticisinin size vereceği bilgileri kullanarak aşağıdaki parametreleri değiştirin.
' “Ne yanar kimse bana âteş-i dilden özge
' Ne açar kimse kapım bâd-ı sebâdan gayrı” (Fuzuli)
Const DBUSer As String = "DBKULLANICISI"
'Şifrenin sorgu esnasında sorulmasını istiyorsanız bu parametreyi boş bırakabilirsiniz.
'You can leave blank the password parameter to be prompted at run-time.
Const DBPassword As String = "ŞİFRE"
Const DBODBCDriver As String = "ODBC SÜRÜCÜSÜNÜN ADI"
Const DBServer As String = "SUNUCU"
Const DBDatabase As String = "VERİTABANI"
6. Şimdi bu satırların aşağıdaki fonksiyonu ekleyin. Sorgularda bu fonksiyonu çağıraracağız. Bu fonksiyon özetle çalıştığınız Excel belgesine yeni bir sayfa ekleyecek, istediğiniz sorgunun sonuçlarını getirecek, bu sonuçların neyi ifade ettiğini söyleyece ve neleri kontrol etmeniz gerektiğini içeren bilgiler verecektir. Bir de Oracle'da bu dökümanlara ilişkin kaynağa bağlantı içerecektir.
PageTitle As String, _
Description As String, _
ColumnInfo As String, _
DataQuery As String, _
ExtendedQuery As String, _
Color As Long _
) As Boolean
On Error GoTo Err
'Default
AddSheet = False
'Add a page
Sheets.Add
'Sheets(1).Select
ActiveSheet.Name = SheetName
'Add the title
Range("A1").Value = PageTitle
Rows("1:1").Select
Selection.Interior.ColorIndex = 9
Selection.Font.ColorIndex = 2
Selection.Font.Bold = True
'Add the description
Range("A2").Value = Description
Rows("2:2").Select
Selection.Font.Italic = True
'Add column information
Range("A3").Select
Range("A3").Value = "Additional information about the output can be found at:"
Selection.Font.Italic = True
Range("a4").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ColumnInfo, TextToDisplay:=ColumnInfo
'Rows("3:3").Select
'Selection.Font.Color = RGB(0, 100, 0)
'Selection.Font.Italic = True
'Show Query
Rows("7:7").Select
Selection.Font.Color = RGB(100, 0, 0)
Range("A7").Value = "QUERY"
Range("a7").Select
Selection.Font.Bold = True
Range("b7").Value = DataQuery
Rows("8:8").Select
Selection.Font.Color = RGB(100, 0, 0)
Range("A8").Value = "EXTENDED"
Range("a8").Select
Selection.Font.Bold = True
Range("b8").Value = UCase(ExtendedQuery)
'Insert Query
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DRIVER=" + DBODBCDriver + ";SERVER=" + DBServer + ";UID=" + DBUSer + ";PWD=" + DBPassword + ";DBQ=" + DBDatabase + ";DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;" _
), Array( _
"RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=Me;CSR=F;FWC=F;FBS=60000;TLO=O;" _
)), Destination:=Range("A11"))
.CommandText = Array(DataQuery)
.Name = "Query from MyOraProd"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
ActiveSheet.Move after:=Worksheets(Worksheets.Count)
ActiveSheet.Tab.ColorIndex = Color
'Clean
AddSheet = True
Exit Function
Err:
AddSheet = False
MsgBox "An Error Occured: " + Err.Description
End Function
7. Şimdi aşağıdaki şekilde sorguları gönderiyoruz.
If AddSheet("Yama Yönetimi", "Yama Yönetimi", "Oracle Veritabanındaki ana kitaplıkların versiyonu hakkında bilgi verir. Her bileşen için ayrı bir satır vardır. Versiyonların güncel olduğunu ve yamaların uygulandığını kontrol edin.", "http://download.oracle.com/docs/cd/B12037_01/server.101/b10755/dynviews_2154.htm", "SELECT * FROM V$VERSION;", "select BANNER from v$version;", 1) Then cnt = cnt + 1
- Yorum yazmak için giriş yapın