熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

小議MSSQL Server 2000的安全及管理

2013-11-15 14:42:24  來源: SQL Server 

  通俗地講資料庫是儲存具有某些特性的資料的數據庫通常我們把使用資料庫系統的用戶劃分為四類資料庫設計者資料庫管理者應用程序設計者及一般使用者其中資料庫管理者負責賬號的管理與維護決定所有資料庫使用者的使用權限資料庫安全管理可說是資料庫管理者最重要的工作SQL Server是Microsoft的企業級資料庫它是個功能強大易於使用的資料庫可直接與Windows NT/的使用者賬號做安全機制整合
  
  那麼到底什麼是安全管理呢?簡而言之安全管理是指對需要登入服務器的人員進行管理在應用程序中我們會對資料庫的各類使用者設置資料操作權限通常是直接在應用程序中做賬號與密碼的管理但這種做法需要撰寫程序控制而SQL Server具有親切易操作的圖形使用界面可以方便地管理使用者對SQL Server的存取權限
  
  SQL Server 安全管理可分為個層次即登入賬戶資料庫的管理與連接特定資料庫的權限和使用者對所連接資料庫部分的操作權限下面我們將針對這個層次做詳細說明
  
  登入賬戶
  
  任何需要存取 SQL Server的使用者皆需要有一組服務器認可的賬戶和密碼SQL Server支持種登入方式一種為Windows驗證另一種為SQL Server驗證前者只要在SQL Server中建立與Windwos NT/對應的登入賬戶讓使用者登入Windows NT/時所用的賬戶能與在SQL Server中的賬戶相互對應即可順利連上SQL Server由此我們完成了對Windows NT/安全管理機制的整合
  
  接下來資料庫管理者在Windows NT上登入賬號可直接將Windows NT中的群組加到SQL Server中從而成為一個登入賬戶
  
  通過上述操作Windows NT登入群組中的成員皆可連接SQL Server如果該群組中某一成員不允許其登入SQL Server可在SQL Server中將該成員的個人賬戶設為拒絕存取如果把SQL Server安裝在 Windows Windows 或Windows Me中則無法使用Windows驗證方式
  
  如果使用SQL Server驗證必須在SQL Server中為要連接SQL Server的使用者建立登入的賬號名稱和密碼這些賬號和密碼與Windows NT/的賬戶無關
  
  管理與連接特定資料庫的權限
  
  在建立登入賬戶後使用者便能進入SQL Server中但並不代表使用者有連接SQL Server特定資料庫的權限必須對使用者或群組設置對SQL Server的操作權限SQL Server中對資料庫的操作權限可分為服務器自身的操作權限與資料庫的存取權限對SQL Server的操作權限可由服務器角色來設置資料庫的存取權限則可由角色與使用者對個別表格的存取權限來設置那麼服務器角色與角色之間有什麼不同呢?
  
   服務器角色
  
  SQL Server系統內建種服務器角色(可把角色想像成Windows NT賬號中的群組)它不能更改或新增當對某一使用者或群組設置好服務器角色後其便擁有該服務器角色所擁有的權限服務器角色是將SQL Server的各項管理工作加以分類如建立賬號和資料庫備份等它與資料庫角色不一樣後者為對個別資料庫的操作權限
  
  我們簡單列出種服務器角色所擁有的權限
  system administrators 表示系統管理員可執行任何動作
  security administrators 表示管理登入賬戶
  server administrators 表示設置SQL Server的各項參數
  setup administrators 表示有關replication(復制)的設置與管理擴充預存程序
  process administrators 表示管理SQL Server所有執行中的程序
  disk administrators 表示管理資料庫文件
  database administrators 表示建立和更改資料庫屬性
  bulk insert administrators 表示對可執行bulk insert操作的管理
  
   角色
  
  SQL Server內建種資料庫角色它不能更改或刪除但可對個別資料庫增加角色若給予使用者有內建角色中的資料庫擁有者權限它便擁有該資料庫的完整操作權其余各角色的詳細權限說明可參考SQL Server的bol(即SQL Server books online)通過查詢關鍵字roles進入標題為roles的項目其中有包含內建服務器角色與資料庫角色的完整說明在此不多贅述需要注意的是在對使用者分別設置了各種角色(每一使用者或群組可具有多種角色)後它便擁有所有角色聯集的權限但若其中有某一角色對某一操作權(如對某一表格的select權)設置了拒絕它將失去了該項權限換句話說拒絕權限優於授予權限
  
  資料庫中部件的存取權限
  
  對於SQL Server的管理與可連接特定資料庫的權限由SQL Server所提供的服務器角色與資料庫角色基本上可以符合我們大部份需求另外可直接對使用者或群組設置對資料庫中部件的個別存取權限這些個別的存取權限有selectinsertupdatedeleteexec和dri其中exec與dri分別表示對預存程序的執行權限和對表格有效性的驗證權限在做直接的權限設置時我們也可針對特殊的使用者(如內建資料庫角色不能滿足時)當然如果使用相同權限方式的用戶比較多時可以增加一個符合需求的資料庫角色或將這些使用者在Windows NT/上先歸於某群組再對該群組設置權限這樣做比較方便於管理與維護
  
  除上述內容之外在實際運行時筆者對於資料庫安全的把關總結出以下幾點建議
   除非必要否則盡量以Windows驗證來管理可連接SQL Server的使用者以整合Windows NT/的安全機制
   善用SQL Server的服務器角色與資料庫角色功能
   善用SQL Server的加密功能
  
  SQL Server提供了登入賬號網絡傳輸虛擬表和預存程序的加密功能其中賬號的密碼加密是預設的而網絡間傳輸資料則可用SSL方式進行加密要啟動此功能必須啟動netlibrary的加密功能同時要配合Windows 的CA功能並在服務器端與用戶端設置完成從而雙方在傳輸資料前便會在SSL加密後再進行傳輸由於虛擬表和預存程序的定義是以明碼保存在系統資料表中若要將虛擬表和預存程序加密可在其建立時在eNTerprise manager中設置加密選項或以 alter 敘述來設置加密
  
   系統安裝完畢後務必更改預設的sa密碼免得有其他使用者義務管理您的SQL Server
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22211.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.