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.

' Her Hakkı Saklıdır. © webslave
' “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.

Public Function AddSheet(SheetName As String, _
                            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.

'Yama Yönetimini Test Etmek İçin
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

Yeni yorum gönder

  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satır ve paragraflar otomatik olarak bölünürler.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].

Biçimlendirme seçenekleri hakkında daha fazla bilgi

CAPTCHA
Lütfen resimdeki ifadeyi yazınız.
Image CAPTCHA
Enter the characters shown in the image.