• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • SQL Server的幾個安全問題

    發表于:2007-05-25來源:作者:點擊數: 標簽:安全sql問題幾個單位
    單位的小王學習 SQL Server已有一段時間了,已經做了個不錯的管理系統,有次小王讓我幫著看看庫的設計有沒有問題,其間我發現他的 安全 意識非常薄弱,這也許是初學者容易忽視的問題,本文探討一些SQL Server常見的安全問題,是給初入SQL Server的人看的,寫

     單位的小王學習SQL Server已有一段時間了,已經做了個不錯的管理系統,有次小王讓我幫著看看庫的設計有沒有問題,其間我發現他的安全意識非常薄弱,這也許是初學者容易忽視的問題,本文探討一些SQL Server常見的安全問題,是給初入SQL Server的人看的,寫的肯定很絮叨,高手勿讀。本文的用的是SQL Server 2000,下文中都簡寫為SQL Server。

      一、空口令或弱口令

      初學者在安裝SQL Server時為了省事,SQL Server管理員sa 用的是空口令或弱口令,這樣危險性十分巨大,而這些危險往往是初學者意識不到的,小王就覺得,自己的庫是試驗數據,沒什么用,即使別人連上庫也無所謂。殊不知SQL Server的默認用戶sa的權限非常巨大,有種觀點是sa的權限要大于administrator的權限,也就是說沒有限制的sa用戶可以做Windows系統管理員所做的任何事。

      下面我們做個簡單的試驗。通過SQL Server給Windows系統增加一個用戶user1,并且把該用戶增加到管理員用戶組administrators里。

      1、首先看看正常情況下在Windows系統增加該用戶的方法。

      有兩種:一是在圖形界面下進行,二是在命令窗口下進行,下面演示通過命令增加用戶。

      1)、在“開始”——〉“運行”處輸入cmd,回車進入到命令窗口,如圖1所示:
      2)、第一行命令net user user1 /add (增加一個用戶名是user1的用戶)。
      3)、第二行net localgroupadminisstrators user1 /add(將此用戶增加到管理員用戶組administrators中)。
      4)、第三行net user(查看目前系統的用戶,可以看到已增加了user1用戶)。
      5)、第四行net user user1 /delete (刪除user1用戶),為了下面通過SQL Server 給系統增加用戶。



    圖1

      2、在SQL Server中增加系統用戶

      1)、打開SQL Server的“企業管理器”——〉“工具”——〉 “SQL 查詢分析器” 。如圖2,輸入要連接的SQL Server的IP地址,確定后出現圖3界面,注意連接的是master庫。



    圖2

      2)、如圖3所示,在查詢窗口中輸入:exec xp_cmdshell 'net user user1 /add',按 執行,如果出現圖4“命令成功完成”的提示說明執行成功。

      3)、接著如圖5所示,輸入exec xp_cmdshell 'net localgroup administrators user1 /add',執行成功后出現圖5的提示說明。



    圖3



    圖4



    圖5

      上邊輸入的 net user user1 /add 和 net localgroup administrators user1 /add是不是很眼熟?它們就是我們上面用過的windows系統下的標準命令。圖6可以看出user1已增加到管理員administrators組中。



    圖6

      看到這明白了吧!通過功能強大的SQL Server可以做Windows系統管理員能做的事。上面通過SQL Server建立用戶的實驗是我從本機遠程連接到測試機的SQL Server,增加了用戶,圖7是用剛建立的用戶user1和遠程計算機建立的ipc連接,這時要進入這臺機器就是易如反掌的事了。接下來的的安全知識自己查查吧,網上非常多的。



    圖7

      3、進一步解釋

      上面用的xp_cmdshell是SQL Server的擴展存儲過程中的一個,存儲過程就像是我們編程用的函數,內容是按需要編寫的一系列SQL 語句和可選控制流語句,可由應用程序通過一個調用執行,而且允許用戶聲明變量、有條件執行以及其它強大的編程功能。每個庫都可以存放存儲過程,但擴展存儲過程只存在master 數據庫中,對用戶來說,擴展存儲過程與普通存儲過程一樣,執行方法也相同。但擴展存儲過程能執行除了數據庫之外的許多操作,上面我們看到通過調用xp_cmdshell可以執行windows系統下的各種命令。

      擴展存儲過程的功能非常強大,如圖8,它們存在master庫中的擴展存儲過程中。

      如xp_regenumvalues、 xp_regread、 xp_regwrite 、xp_regdeletevalue、 xp_regdeletekey這些擴展存儲過程能對注冊表進行讀寫操作。例如:可以通過下面命令查看注冊表中的啟動項目。

      Exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run'



    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>