SQL Server權限設置
一、SQL Server的安全機制
SQL Server的安全機制主要包括以下四個方面:
(1)客戶機的安全機制:用戶必須能夠登錄客戶機,然後使用應用程序或管理工具來訪問數據庫,對於Windows系統的客戶來說,主要涉及到操作系統的安全,主要是Windows賬號的安全
(2) 服務器的安全機制:用戶登錄服務器時,必須使用一個賬號和密碼,服務器會按照不同的身份驗證方式判斷這個賬號和密碼的正確性
(3) 數據庫的安全機制:
(4) 數據對象的安全機制:用戶通過前面三道防線才能訪問數據庫的數據對象(如表、視圖),常見的訪問權限包括數據的查詢、更新、插入、刪除
二、登錄權限設置
SQL Server有兩種身份驗證模式:
Windows身份驗證模式:使用操作系統中Windows用戶和密碼登錄,SQL Server不要求提供密碼,也不執行身份驗證。Windows身份驗證使用了Kerberos安全協議,比SQL Server身份驗證更安全。適用於局域網內部(如AD域)訪問數據庫的情況
SQL Server和Windows身份驗證模式:
打開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權限設置