文章目錄
1 服務器安全管理
1.1 兩種身份驗證方式
用windows身份驗證是根據用戶的windows身份權限來進行身份驗證,這種方式要直接一些,只要windows登錄密碼正確就可以訪問數據庫,sql不判斷sa密碼。但是在遠程連接的時候會因NTML驗證的緣故,無法登陸。
用混合身份驗證模式,也就是基於Windows身份驗證和SQL Server身份混合驗證。這個連接不僅包括遠程用戶還包括本地用戶,當遠程用戶訪問時由於未通過windows認證,而進行sql server認證,從而使得遠程用戶也可以登錄。
1.2 固定服務器角色
1.3 Windows身份驗證模式和混合模式的切換
- 連接到SQL Server數據庫引擎示例,右擊,選擇“屬性”
- 進入“服務器屬性”界面
- 在選擇頁中選擇“安全性”,在“服務器身份驗證”中選擇“SQL Server和Windows身份驗證模式”,並點擊確定
- 彈出提示框要求重啓SQL Server
- 展開數據庫實例,選擇“安全性”,打開“登錄名”,找到sa登錄名
- 右擊,選擇屬性,進入屬性對話框
- 取消勾選實施強制密碼策略,設置sa賬戶的登錄密碼
- 在選擇頁中選擇“狀態”,確認確認選擇登錄爲已啓用
- 退出SSMS,重啓SQL Server示例服務
- 使用SQL Server身份登錄,身份驗證選擇SQL Server身份驗證,登錄名爲sa,密碼爲剛纔設定的密碼,點擊連接
- 登錄成功後,可以見到服務器示例右邊的登錄爲SQL Server的sa登錄
1.4 創建Windows身份驗證的登錄名
創建Windows用戶
- 右擊我的電腦,選擇“管理”
- 用戶在計算機管理窗口選擇“本地用戶和組”,再選擇“用戶”
- 右擊“用戶”,選擇“新用戶”
- 在新用戶對話框中輸入用戶名,密碼,取消勾選“用戶下次登錄時須更改密碼”
- 點擊創建,然後關閉對話框,在面板中可以見到新創建的Windows用戶
使用SSMS工具創建Windows身份驗證的登錄名
- 展開數據庫實例,選擇“安全性”,再選擇“登錄名”
- 右擊“登錄名”,選擇“新建登錄名”
- 在登錄名新建對話框中點擊“搜索按鈕”
- 彈出“選擇用戶和組”對話框,點擊“高級”
- 進入高級模式後,點擊“立即查找”,計算機內所有用戶都會展示在下方窗格中
- 選擇需要創建登錄名的Windows用戶,點擊確定返回,再點擊確定,回到創建登錄名窗口
- 點擊“確定”,完成Windows賬戶登錄名創建
- 使用Windows用戶作爲登錄名,需要使用該賬戶登錄電腦,然後SSMS會自動選擇當前Windows用戶進行登錄
使用SQL方式創建Windows身份驗證的登錄名
語法格式:
CREATE LOGIN <[計算機名\用戶名]>
FROM WINDOWS
WITH DEFAULT_DATABASE=<默認數據庫>
使用示例:
CREATE LOGIN [DESKTOP-LJ2ALIV\winuser]
FROM WINDOWS
WITH DEFAULT_DATABASE=master
1.5 創建SQL Server身份驗證的登錄名
使用SSMS工具創建SQL Server身份驗證的登錄名
- 展開數據庫實例,選擇“安全性”,再選擇“登錄名”
- 右擊“登錄名”,選擇“新建登錄名”
- 勾選“SQL Server身份驗證”,在“登錄名”中輸入要創建的登錄名稱,取消勾選“強制實施密碼策略”(如果密碼符合策略要求,可不取消),輸入密碼
- 完成後點擊“確定”,斷開當前連接,使用新創建的SQL登錄名進行連接
使用SQL方式創建SQL Server身份驗證的登錄名
語法格式:
CREATE LOGIN <SQL Server登錄名>
WITH PASSWORD=<密碼>,
DEFAULT_DATABASE=<默認數據庫>
使用示例:
CREATE LOGIN sqluser
WITH PASSWORD='123abc',
DEFAULT_DATABASE=master
1.6 配置登錄名服務器角色
- 使用新創建的SQL Server登錄名連接服務器
- 執行創建數據庫命令,顯示沒有創建數據庫權限
- 使用Windows管理員賬戶(或者sa賬戶)登錄,進入“安全性”,選擇“登錄名”,右擊剛纔的登錄名,選擇“服務器角色”選擇頁查看角色權限
- 爲其添加dbcreateor權限,使其擁有創建數據庫的權限,點擊確定
- 斷開連接,重新以剛纔的SQL Server登錄名進行登錄,執行創建數據庫命令
- 創建成功,刷新數據庫可以見到縣創建的數據庫
2 數據庫安全管理
2.1 固定數據庫角色
2.2 創建Windows驗證的數據庫用戶
使用SSMS工具創建Windows驗證的數據庫用戶
- 打開相應的數據庫,選擇“安全性”,再選擇“用戶”
- 右擊“用戶”,選擇“新建用戶”
- 彈出“數據庫用戶-新建”窗口,在“用戶類型”中選擇“Windows用戶”,用戶名右擊“…”按鈕,選擇對應的計算機用戶,登錄名右擊“…”按鈕,選擇服務器中對應的登錄名,點擊“確定”
- 創建成功,使用該用戶名連接服務器可訪問該數據庫
使用SQL方式創建Windows驗證的數據庫用戶
語法格式:
CREATE USER [計算機名\用戶名]
FROM LOGIN [計算機名\登錄名]
使用示例:
CREATE USER [DESKTOP-LJ2ALIV\winuser]
FROM LOGIN [DESKTOP-LJ2ALIV\winuser]
2.3 創建SQL Server驗證的數據庫用戶
使用SSMS工具創建SQL Server驗證的數據庫用戶
- 打開相應的數據庫,選擇“安全性”,再選擇“用戶”
- 右擊“用戶”,選擇“新建用戶”
- 彈出“數據庫用戶-新建”窗口,在“用戶類型”中選擇“帶登錄名的SQL用戶”,用戶名輸入相應的用戶名,登錄名右擊“…”按鈕,選擇服務器中對應的登錄名,點擊“確定”
- 創建成功,使用該用戶名連接服務器可訪問該數據庫
使用SQL方式創建SQL Server驗證的數據庫用戶
語法格式:
CREATE USER 用戶名
FROM LOGIN 登錄名
使用示例:
CREATE USER sqluser
FROM LOGIN sqluser
2.4 數據庫角色的使用
- 使用前面創建的用戶名訪問數據庫,嘗試查詢student表中的數據,提示無SELECT權限
- 以管理員用戶登錄數據庫,打開相應數據庫中的“安全性”,再打開角色,右擊“數據庫角色”,選擇“新建數據庫角色”
- 彈出“數據庫角色-新建”窗口,輸入數據庫角色名稱
- 在選擇頁中選擇“安全對象”,點擊“搜索”按鈕
- 彈出“添加對象”窗口,選擇“特定類型的所有對象”,點擊進入“確定”,進入“選擇對象類型”窗口
- 在窗口中選擇“表”,點擊“確定”返回
- 在窗口安全對象中選中需要添加權限的表,在下方窗格找到“選擇”條項,勾選“授予”,點擊確定
- 成功創建數據庫角色,在數據庫角色中可以找到該數據庫角色
- 打開“安全性”,再打開“用戶”,右擊需要添加權限的用戶名,選擇屬性
- 在“數據庫用戶”窗口的選擇頁選中成員身份,勾選創建的數據庫角色,點擊確定
- 重新使用前面創建的用戶名訪問數據庫,嘗試查詢student表中的數據,查詢數據成功
3 數據庫對象安全管理
使用SSMS工具完成對象權限設置
- 右擊相應的數據庫用戶,選擇“屬性”,打開數據庫用戶屬性面板
- 在面板窗口的屬性頁中選擇“安全對象”,點擊“搜索”按鈕
- 彈出“添加對象”窗口,選擇“特定類型的所有對象”,點擊進入“確定”,進入“選擇對象類型”窗口
- 在窗口中選擇“表”,點擊“確定”返回
- 在窗口中選中需要添加權限的表,在下方窗格找到“選擇”條項,勾選需要的權限管理,點擊確定
- 完成對象級別權限設置,使用該用戶名訪問數據庫,可以檢驗權限設置的效果。
使用SQL方式完成對象權限設置
語法格式:
--授予權限
GRANT <權限列表> ON <視圖或數據表> TO <用戶名>
--拒絕權限
DENY <權限列表> ON <視圖或數據表> TO <用戶名>
--撤銷權限
REVOKE <權限列表> ON <視圖或數據表> FROM <用戶名>
使用示例:
--授予sqluser對student表的SELECT、UPDATE權限
GRANT SELECT,UPDATE ON student TO sqluser
--拒絕sqluser對student表的DELETE權限
DENY DELETE ON student TO sqluser
--撤銷sqluser對student表的UPDATE權限
REVOKE UPDATE ON student FROM sqluser