通俗地講
資料庫是儲存具有某些特性的資料的數據庫
通常
我們把使用資料庫系統的用戶劃分為四類
資料庫設計者
資料庫管理者
應用程序設計者及一般使用者
其中資料庫管理者負責賬號的管理與維護
決定所有資料庫使用者的使用權限
資料庫安全管理可說是資料庫管理者最重要的工作
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所提供的服務器角色與資料庫角色基本上可以符合我們大部份需求
另外
可直接對使用者或群組設置對資料庫中部件的個別存取權限
這些個別的存取權限有select
insert
update
delete
exec和dri
其中exec與dri分別表示對預存程序的執行權限和對表格有效性的驗證權限
在做直接的權限設置時
我們也可針對特殊的使用者(如內建資料庫角色不能滿足時)
當然
如果使用相同權限方式的用戶比較多時
可以增加一個符合需求的資料庫角色
或將這些使用者在Windows NT/
上先歸於某群組
再對該群組設置權限
這樣做比較方便於管理與維護
除上述內容之外
在實際運行時
筆者對於資料庫安全的把關總結出以下幾點建議
除非必要
否則盡量以Windows驗證來管理可連接SQL Server的使用者
以整合Windows NT/
的安全機制
善用SQL Server的服務器角色與資料庫角色功能
善用SQL Server的加密功能
SQL Server提供了登入賬號
網絡傳輸
虛擬表和預存程序的加密功能
其中賬號的密碼加密是預設的
而網絡間傳輸資料則可用SSL方式進行加密
要啟動此功能必須啟動net
library的加密功能
同時要配合Windows
的CA功能
並在服務器端與用戶端設置完成
從而雙方在傳輸資料前
便會在SSL加密後再進行傳輸
由於虛擬表和預存程序的定義是以明碼保存在系統資料表中
若要將虛擬表和預存程序加密
可在其建立時在eNTerprise manager中設置加密選項或以 alter 敘述來設置加密
系統安裝完畢後
務必更改預設的sa密碼
免得有其他使用者
義務
管理您的SQL Server
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22211.html