就是愛分享
SQL Server的安全管理可分為兩階段:
驗證(Authentication):驗證使用者是否有權利登入SQL Server伺服器,使用SQL Server提供的服務。

授權(Authorization):也就是設定使用者登入後,可對伺服器做哪些動作、使用哪些資料庫、存取哪些資料表等存取權限。

登入帳戶
在SQL Server中,將用來驗證使用者身份的帳戶稱為登入(Login)。SQL Server提供兩種驗證方式:Windows驗證 - 在SQL Server中建立對應到現有Windows 2000/2003本機或網域帳戶的「登入」,當使用者已用合法的帳戶登入Windows後,要存取SQL Server時,只要他目前所用的Windows帳戶已在SQL Server中有對應的登入,SQL Server就會允許他連線。

SQL Server驗證 - 指由SQL Server自己負責驗證使用者的身份,因此使用這種驗證方式時,管理員需事先y在SQL Server中建好所需的登入及密碼,使用者在連線伺服器時,則必須輸入登入名稱及密碼。通過驗證後才能連上伺服器,使用其資源。

存取權限
在SQL Server中,可被設定存取權限給使用者的物件或動作稱為安全性實體(Securable),安全性實體的種類相當多,可概分為三個層次:
伺服器層級 - 例如登入、資料庫、連結伺服器、端點(Endpoint)等屬於整個SQL Server執行個體的安全性實體都是屬於這個層級,這類安全性實體的存取權限,也都要以登入為授與對象,而一般為方便設定,都是直接透過內建的伺服器腳色(Server Role)來設定登入對伺服器安全性實體的存取權限;當然SQL Server也允許不透過伺服器角色,而個別設定某安全性實體的存取權限。

資料庫層級 - 舉凡屬於某資料庫本身的安全性實體都屬此類,像是資料庫使用者、資料庫角色、結構描述、全文檢索目錄等,原則上,這類安全性實體都需授與給資料庫使用者。

結構描述層級 - 這類安全性實體包括資料表、檢視表、預存程序、函數等等,這個層級的存取權限自然也是以資料庫使用者為主要授與對象。

使用者
使用者(user)這個資料庫物件,就是用來設定登入帳戶對資料庫是否有存取權。由於每個資料庫所允許使用的人都不同,所以每個資料庫都有它自己的使用者物件,假設我們想使用SQL Server中所有的資料庫,那麼在每個資料庫中,都要有以我們的登入帳戶所建立的使用者物件才行。

角色
角色(role)是用來指定存取權限的資料庫物件,而且每個資料庫都有它自己的角色物件,每個角色也都有其獨立的存取權限設定。例如我們可指定某些角色只可查詢資料表資料、有些角色則可更改或刪除資料。設定好角色之後,我們只需再指定每一個使用者可以扮演哪些角色,就可讓使用者取得與角色相同的存取權限。
0 Responses