SQL SERVER 安全性體系

2021-09-08 09:52:02 字數 2972 閱讀 9106

主體和安全實體

在 sql server 2008中,「主體」就是可以訪問受保護資源且能獲得訪問資源所需許可權的任何個人、組或流程。與舊版 sql server 一樣,可以在 windows 中定義主體,也可將沒有對應 windows 主體的 sql server 登入作為其基礎。下面的列表顯示了 sql server 2008主體的層次結構,但不包括固定伺服器和資料庫角色,還顯示了將登入和資料庫使用者對映為安全物件的方法。主體的影響範圍取決於它的定義範圍,這樣 windows 級別的主體就比 sql server 級別的主體擁有更大的影響範圍,而後者的影響範圍又大於資料庫級別的主體。每個資料庫使用者都會自動隸屬於固定的 public 角色。

windows 級別的主體

•     windows 域登入

•     windows 本地登入

•     windows 組

sql server 級別的主體

•     sql server登入

•     對映為 windows 登入的 sql server 登入

•     對映為證書的 sql server 登入

•     對映為不對稱金鑰的 sql server 登入

資料庫級別的主體

•     資料庫使用者

•     對映為 sql server 登入的資料庫使用者

•     對映為 windows 登入的資料庫使用者

•     對映為證書的資料庫使用者

•     對映為不對稱金鑰的資料庫使用者

•     資料庫角色

•     應用程式角色

•     公共角色

授權的另一部分就是可用以保護許可權授予操作或拒絕授予操作的物件。圖4列出了sql server 2008 中安全實體物件的層次結構。在伺服器級別,可以保護網路端點,以控制進出伺服器的通訊通道,以及資料庫、繫結角色和登入。在資料庫和架構級別,使用者建立的每乙個物件都被當作安全主體,包括那些駐留在架構中的物件。

固定伺服器角色

伺服器角色

說明 bulkadmin

成員可以執行bulk insert語句,這一角色中的成員仍然要求非sysadmins使用者能夠訪問被更新到的物件 : administer blck operations

dbcreator

成員可以建立、修改、刪除和恢復任意資料庫 : create database

diskadmin

這一角色用於管理磁碟檔案。大多數此類功能是關於新增和刪除備份裝置的。:alter resources

processadmin

成員可以終止在sql server例項中執行的程序,如果您希望授予某人中止長時間執行的查詢或者孤立連線的能力,那麼這一角色非常有 用 :  alter any connection , alter server state

public

所有有效sql server登陸是public角色的成員 

securityadmin

成員可管理登陸及其屬性。他們可以grant, deny 和revoke伺服器級別的許可權以及資料庫級別的許可權。他們也可以為sql server登陸重置密碼。這一角色無權指定資料庫許可權。如果希望securityadmin成員能夠進行這一操作,就必須使他們的登入成為特定資料庫的db_accessadmin固定資料庫角色的成員

serveradmin

成員可以改變伺服器範圍內的配置選項並關閉伺服器

setupadmin

成員要吧新增和刪除新增伺服器,還執行一些系統儲存過程。

sysadmin

成員可執行伺服器中的任意操作。預設情況下,windows builtin\administrators組、本地管理員組中的所有成員是sysadmin固定伺服器角色的成員。sql server服務帳戶也是此角色的成員。

資料庫使用者

可以通過ssms或者t-sql語句create login來建立登入。再利用ssms或者t-sql語句create user 來建立資料庫使用者

在建立資料庫使用者之後,可以選擇將它包含在乙個資料庫角色中。可更改。

資料庫角色 

說明db_addessadmin

可以為windows登陸、windows組和sql server登陸新增或者刪除訪問許可權 :alter any user, create schema

db_backupoperator

可以備份資料庫 : backup databse , backuplog , checkpoint

db_datareader

可以從所有使用者表中讀取所有資料 : select 

db_datawriter

成員要吧新增、刪除或者改變所有使用者表中的資料 : deleter , insert , update

db_ddladmin

可以執行資料庫中的任意資料定義語言(ddl)命令 : alter any assembly, alter any asammetric key , alter any 

db_denydatareader

不能讀取資料庫中使用者表中的任何資料 : 拒絕select 

db_denydatawriter

不能在資料庫的使用者表中新增 、修改或者刪除任何資料: 拒絕delete , insert , update

db_owner

可以對資料庫執行全部配置和維護操作,包括刪除資料庫

db_securityadmin

可以修改角色成員關係並管理許可權

有一種特殊的資料庫角色,sysadmin使用者不能明確向其授予其它使用者許可權,它被稱為public角色。所有資料庫使用者都隱式包含在public角色中。這一角色獲得特定資料庫中使用者的所有預設許可權。它不能擁有指定給它的使用者、組或者角色。因為預設情況下每個 人都屬於這一角色。這一角色不能被刪除。因此,要防止未經授權的資料訪問,應該授予public角色的許可權降至最低。應將許可權授予其它資料庫角色且授予登陸相關的使用者帳戶。

SQL Server 2012的安全性概述

sqlserver 2012整個安全體系結構從順序上可以分為認證和授權兩個部分,其安全機制可以分為5個層級。1 客戶機安全機制 2 網路傳輸的安全機制 3 例項級別安全機制 4 資料庫級別安全機制 5 物件級別安全機制 這些層級由高到低,所有的層級之間相互聯絡,使用者只有通過了高一層的安全驗證,才能...

SQL Server 2012安全性 必要工具

編者按 本系列關於sql server 2012安全的文章共分四部分。本文是第三部分,將重點介紹sql server 2012的必要安全 在第一部分中,我們對sql server安全問題進行了案例研究。第二部分我們介紹了sql server 2012安全性 功能更新 sql server安全工具可以...

mysql安全性試驗 Mysql安全性測試

一 沒有進行預處理的sql語句 1.連線資料庫 conn mysql connect 127.0.0.1 3306 root 518666 if conn die could not connect mysql error 2.選擇資料庫 mysql select db mysql safe con...