SQL Server 資料庫基本記錄(二)

StaunchKai發表於2018-03-17

繼續上一篇內容 SQL Server 資料庫基本記錄(一)

資料庫使用者管理

  1. 登入名 用於連線到 SQL Server 伺服器(不一定能對資料庫內容執行操作)
  2. 資料庫使用者名稱
    • SQL Server 的使用者
    • 每個用來登入 SQL Server 的賬號都是一個使用者
    • 同一個資料庫可以擁有多個使用者,同一個使用者也可以同時訪問多個資料庫
  3. 建立登入名和為使用者賦予操作許可權
  • 建立登入名
CREATE LOGIN <登入名> WITH PASSWORD=<'密碼'>
複製程式碼
  • 建立資料庫使用者
CREATE USER 資料庫使用者 FOR LOGIN=登入名
複製程式碼
  • 為資料庫使用者賦予許可權
GRANT 操作許可權 ON 表名 TO 使用者名稱
複製程式碼
  • 角色:事先定義好的一組許可權,資料庫伺服器方面的控制許可權:伺服器角色 -- 例如建立、修改、刪除資料庫、管理磁碟檔案、新增或刪除資料庫連線等 -- 伺服器級別的物件,只能包含登入名
  • 資料庫的所有者:abo -- 每個資料庫中都存在 -- 登入名 sa 自動對映為資料庫使用者 abo
角色名 描述
bulkadmin 執行 bulk 語句,可將文字檔案內的資料匯入到 SQL Server 2008 中
dbcreator 建立、更改、刪除和還原任何資料庫
diskadmin 管理磁碟檔案
processadmin 管理 SQL Server 中執行的程式
securityadmin 管理和稽核登入賬戶
serveradmin 設定伺服器範圍的配置
setupadmin 新增和刪除連線伺服器,並執行沒某些系統儲存過程
sysadmin 可在伺服器引擎中執行任何活動
public 兩大特點:1. 初始狀態時沒有許可權 2. 所有資料庫使用者都是它的成員
  • 角色:事先定義好的一組許可權,資料庫中資料的控制許可權:資料庫使用者角色 -- 資料庫級別的一個物件,只能包含資料庫使用者名稱 -- 例如可訪問哪個資料庫,可訪問哪個資料庫中的哪些資料表,哪些檢視等 -- 對哪些資料表執行哪些操作,比如是插入操作還是更新操作
  • 固定資料庫角色 -- 一組 SQL Server 預定義的資料庫角色 -- 具有資料庫級別的管理許可權
  • 自定義資料庫角色 -- 當固定資料庫角色不能滿足需求時,可自定義資料庫角色
角色名 描述
db_owner 執行所有的配置活動和維護活動,以及授予或取消資料庫物件上的 select,insert,update
db_accessadmin Windows 登入賬戶
db_datawriter 向來自資料庫中的所有使用者表新增、更新、刪除資料
db_datareader 讀取資料庫中所有使用者表中的資料
db_ddladmin 執行任何資料庫語言命令
db_securityadmin 管理資料庫安全,可修改角色成員身份和管理許可權
db_backupoperator 可備份資料庫
db_denydatareader 不能檢視資料庫中使用者表的任何資料
db_denydatawriter 不能向使用者表中新增、更新或刪除任何資料
public 特殊的固定資料庫使用者,每個資料庫使用者都屬於 public 資料角色

public 資料庫角色的特點:

  • 捕獲資料庫中使用者的預設許可權
  • 所有使用者、角色或組預設屬於 public
  • 無法將使用者、組或角色指派給它,因為預設情況下它屬於該角色
  • 不能被刪除

資料庫的維護

資料庫狀態

  1. 兩種狀態
    • online:可對資料庫進行訪問
    • offline:資料庫無法使用
  2. 檢視資料庫狀態的方法
  • 使用查詢語句
SELECT state_desc FROM sys.databases WHERE NAME = 'E_Market'
複製程式碼
**E.g:**
複製程式碼

SQL Server 資料庫基本記錄(二)

  • 使用函式查詢
SELECT DATABASEPROPERTYEX('E_Market', 'status')
複製程式碼
**E.g:**
複製程式碼

SQL Server 資料庫基本記錄(二)

  • online (聯機) -- 資料庫處在可操作,可查詢狀態
  • offline (離線) -- 斷開資料庫跟所有使用者的連線 -- 資料庫名在資料庫節點中存在 -- 不能執行任何有效的資料庫操作

分離和附加資料庫

  1. 分離資料庫
EXEC sp_detach_db @dbname=E_Market
複製程式碼
  1. 附加資料庫
EXEC sp_detach_db @dbname=E_Market,
@filename1='F:\Project\E_Market_data.mdf',	-- 主檔案
@filename2='F:\Project\E_Market_log.ldf'	-- 日誌檔案
複製程式碼
> E_Market 均為資料名
複製程式碼
  1. 離線和分離資料庫的異同點
  • 不同點: -- 離線:與資料庫斷開連線,但資料庫節點還存在離線資料庫名稱 -- 分離:將資料庫從伺服器上分離出去,資料庫不存在,只存在對應的資料檔案和日誌檔案
  • 相同點:都可對資料庫檔案進行復制等操作

收縮資料庫

  • 刪除資料庫的每個檔案中已分配但還未使用的頁
  • 收縮後資料庫空間自動減少

SQL Server 提供的備份方式

  1. 完整備份:備份整個資料庫的所有內容包括事物日誌
  2. 差異備份:只備份上次 完整備份 後更改過的資料部分
  3. 事務日誌備份:至備份事物日誌裡的內容
  4. 檔案或檔案組備份:只備份檔案或檔案組中的某些檔案

在資料庫完整備份期間,SQL Server 做以下工作

  • 備份資料及資料庫中所有表的結構和相關的檔案結構
  • 備份在備份期間發生的所有活動
  • 備份在事物日誌中為確認的事物

差異備份:

  • 是完整備份的補充
  • 備份上次完整備份後,資料變動的部分

相關文章