1. 程式人生 > >SQL Server權限設置

SQL Server權限設置

sql 數據庫 權限管理 楊書凡 安全

隨著網絡的不但發展、黑客技術的日益增長,針對於SQL Server數據庫的攻擊也越來越多,很多企業的機密數據受到一定的威脅。如何多方便的加強SQL Server的安全性呢?


一、SQL Server的安全機制

SQL Server的安全機制主要包括以下四個方面:

(1)客戶機的安全機制:用戶必須能夠登錄客戶機,然後使用應用程序或管理工具來訪問數據庫,對於Windows系統的客戶來說,主要涉及到操作系統的安全,主要是Windows賬號的安全


(2) 服務器的安全機制:用戶登錄服務器時,必須使用一個賬號和密碼,服務器會按照不同的身份驗證方式判斷這個賬號和密碼的正確性


(3) 數據庫的安全機制:

任何能夠登錄到服務器的賬號和密碼都對應著一個默認的數據庫,SQL Server對數據庫級的權限管理采用的是“數據庫用戶”的概念


(4) 數據對象的安全機制:用戶通過前面三道防線才能訪問數據庫的數據對象(如表、視圖),常見的訪問權限包括數據的查詢、更新、插入、刪除



二、登錄權限設置

SQL Server有兩種身份驗證模式:

Windows身份驗證模式:使用操作系統中Windows用戶和密碼登錄,SQL Server不要求提供密碼,也不執行身份驗證。Windows身份驗證使用了Kerberos安全協議,比SQL Server身份驗證更安全。適用於局域網內部(如AD域)訪問數據庫的情況

SQL Server和Windows身份驗證模式:

又稱混合驗證模式,允許使用用戶使用Windows身份驗證和SQL Server身份驗證進行連接

打開SSMS,右擊“SQL Server實例”,選擇屬性,選擇安全性,可以設置身份驗證模式,如圖所示:

技術分享圖片


可以使用SSMS創建管理登錄賬戶,依次展開“SQL Server實例”,安全性,右擊登錄名、新建登錄名,如下圖所示:

技術分享圖片



三、訪問許可權限設置

訪問許可權限設置可以分別從服務器、數據庫、對象三個級別進行設置,可以把SQL Server比作一個酒店,如下圖所示:

技術分享圖片

1. 服務器級別權限設置

在SQL Server中內置了一組服務器角色,用來執行服務器級別的管理,如創建數據庫、管理和審核登陸賬戶等,作用於整臺服務器,而非單個數據庫。

技術分享圖片


為用戶分配服務器級別的權限的步驟如下:

在SSMS中依次展開“SQL Server實例”,安全性,右擊某個登錄名,選擇屬性,選擇服務器角色,設置需要賦予該用戶的權限,如下圖所示:

技術分享圖片


2. 數據庫級別的權限設置

建立了SQL Server登錄賬戶後,需要賦予用戶權限,才能對數據庫進行操作。如果需要訪問某個數據庫,則需要在該數據庫中建立相應的數據庫用戶,數據庫用戶是映射到登錄賬戶上的。

例如:在MySchool數據庫上建立一個用戶User2,則該用戶對應到一個登錄賬戶User2,依次展開數據庫MySchool、安全性、右擊用戶,選擇新建用戶,打開“數據庫-新建”窗口,進行相關設置,如下圖所示:

技術分享圖片

技術分享圖片

為用戶設置數據庫級別的具體步驟如下:

在SSMS中依次展開“SQL Server實例”,安全性,右擊某個登錄名,選擇屬性,選擇用戶映射,設置需要賦予該用戶的權限,如下圖所示:

技術分享圖片


當數據庫角色不能滿足需求時,還可以創建數據庫角色

依次展開數據庫MySchool、安全性,右擊角色,新建數據庫角色


3. 對象級別權限設置

一個數據庫中通常包含多個數據表、視圖、存儲過程等,可在單個表上為用戶授予權限

(1)為表授權

在SSMS上找到需要授權的表,右擊該表,選擇屬性、權限,單擊搜索,添加需要授權的用戶,在下方選擇需要授予用戶的權限

技術分享圖片


(2)為數據庫授權

數據庫本身也是對象,授權方式和表類似,右擊數據庫、屬性、權限

技術分享圖片


(3)為存儲過程授權

依次展開服務器 、數據庫、選擇數據庫、可編程性、存儲過程 、屬性、權限

技術分享圖片








SQL Server權限設置