標籤: 暫無標籤

1984年,Mark B. Hiffman和Robert Epstern創建了Sybase公司,並在1987年推出了Sybase資料庫產品。SYBASE主要有三種版本,一是UNIX操作系統下運行的版本,二是Novell Netware環境下運行的版本,三是Windows NT環境下運行的版本。對UNIX操作系統目前廣泛應用的為SYBASE 10 及SYABSE 11 for SCO UNIX。

1 Sybase介紹和產品概述 


1.1 Sybase資料庫簡介


1.1.1 版本
1984年,Mark B. Hiffman和Robert Epstern創建了Sybase公司,並在1987年推出了Sybase資料庫產品。SYBASE主要有三種版本,一是UNIX操作系統下運行的版本,二是Novell Netware環境下運行的版本,三是Windows NT環境下運行的版本。對UNIX操作系統目前廣泛應用的為SYBASE 10 及SYABSE 11 for SCO UNIX。

1.1.2 Sybase資料庫的特點
(1)它是基於客戶/伺服器體系結構的資料庫 
一般的關係資料庫都是基於主/從式的模型的。在主/從式的結構中,所有的應用都運行在一台機器上。用戶只是通過終端發命令或簡單地查看應用運行的結果。而在客戶/伺服器結構中,應用被分在了多台機器上運行。一台機器是另一個系統的客戶,或是另外一些機器的伺服器。這些機器通過區域網或廣域網聯接起來。 
客戶/伺服器模型的好處是: 
 1)它支持共享資源且在多台設備間平衡負載 
     2)允許容納多個主機的環境,充分利用了企業已有的各種系統 
註釋:什麼是客戶/伺服器體系結構?
從硬體角度看,客戶/伺服器體系結構是指將某項任務在兩台或多台機器之間進行分配,其中客戶機(Client)用來運行提供用戶介面和前端處理的應用程序,伺服器機(Server)提供客戶機使用的各種資源和服務。
從軟體角度看,客戶/伺服器體系結構是把某項應用或軟體系統按邏輯功能劃分為客戶軟體部分和伺服器軟體部分。客戶軟體部分一般負責數據的表示和應用,處理用戶界面,用以接收用戶的數據處理請求並將之轉換為對伺服器的請求,要求伺服器為其提供數據的存儲和檢索服務;伺服器端軟體負責接收客戶端軟體發來的請求並提供相應服務客戶/伺服器融合了大型機的強大功能和中央控制以及PC機的低成本和較好的處理平衡。客戶/伺服器為任務的集中/局部分佈提供了一種新的方法,這種體系能夠使用戶對數據完整性、管理和安全性進行集中控制。在緩解網路交通和主機負荷以及滿足用戶需要方面,客戶/伺服器體系提供了良好的解決方案。
總之,客戶/伺服器的工作模式是:客戶與伺服器之間採用網路協議(如TCP/IP、IPX/SPX)進行連接和通訊,由客戶端向伺服器發出請求,伺服器端響應請求,並進行相應服務。

(2) 它是真正開放的資料庫 
    由於採用了客戶/伺服器結構,應用被分在了多台機器上運行。更進一步,運行在客戶端的應用不必是Sybase公司的產品。對於一般的關係資料庫,為了讓其它語言編寫的應用能夠訪問資料庫,提供了預編譯。Sybase資料庫,不只是簡單地提供了預編譯,而且公開了應用程序介面DB-LIB,鼓勵第三方編寫DB-LIB介面。由於開放的客戶DB-LIB允許在不同的平台使用完全相同的調用,因而使得訪問DB-LIB的應用程序很容易從一個平台向另一個平台移植。 

(3) 它是一種高性能的資料庫
Sybase真正吸引人的地方還是它的高性能。體現在以下幾方面:
 1)可編程資料庫 
通過提供存儲過程,創建了一個可編程資料庫。存儲過程允許用戶編寫自己的資料庫子常式。這些子常式是經過預編譯的,因此不必為每次調用都進行編譯、優化、生成查詢規劃,因而查詢速度要快得多。 
 2)事件驅動的觸發器 
觸發器是一種特殊的存儲過程。通過觸發器可以啟動另一個存儲過程,從而確保資料庫的完整性。 
 3)多線索化 
Sybase資料庫的體系結構的另一個創新之處就是多線索化。一般的資料庫都依靠操作系統來管理與資料庫的連接。當有多個用戶連接時,系統的性能會大幅度下降。Sybase資料庫不讓操作系統來管理進程,把與資料庫的連接當作自己的一部分來管理。此外,Sybase的資料庫引擎還代替操作系統來管理一部分硬體資源,如埠、內存、硬碟,繞過了操作系統這一環節,提高了性能。

1.1.3 訪問Sybase伺服器的基本過程
1)建立客戶與伺服器之間的連接,包括網路連接、客戶進程與伺服器進程之間的連接;
2)客戶端通過網路發送SQL語句給伺服器,用來查詢或操作伺服器中的數據或資料庫對象;
3)伺服器接收到SQL語句后,對其進行語法分析、優化和編譯后執行;
4)如果執行的語句產生一個結果集,伺服器通過網路把結果集返回給客戶;
5)客戶端對收到的結果作相應的處理。
在客戶/伺服器體系,有兩種資料庫引擎結構,即多進程資料庫引擎和單進程、多線程引擎結構。多進程結構即多個可執行程序同時運行。每當用戶登錄到資料庫系統時實際上都啟動了資料庫引擎的一個獨立實例。存在起協調作用的進程協調進行之間的通訊以保證當多用戶訪問相同數據時數據的完整性。多進程資料庫引擎一般用在大型機資料庫上。單進程多線程資料庫引擎在原理上和多進程資料庫引擎類似,不同的是多線程資料庫引擎自己負責調度各應用程序佔用CPU的時間,而不依賴於操作系統。這樣,多線程資料庫引擎自我保護的能力更強。
    Sybase資料庫管理系統採用的是單進程多線程的引擎結構。

1.2 Sybase產品概述


1.2.1 Sybase軟體的組成
Sybase軟體可劃分為三個部分:
 1)進行數據管理與維護的聯機關係資料庫管理系統Sybase SQL Server;
 2)支持資料庫應用系統的建立和開發的一組前端工具軟體Sybase SQL Tools;
 3) 把異構環境下其他廠商的應用軟體和任何類型的數據連接在一起的介面軟體Open Client/Open Server。
SQL Server是個可編程的資料庫管理系統(DBMS),它是整個Sybase產品的核心軟體,起著數據管理、高速緩衝區管理、事務管理的作用。
ISQL是與SQL Server進行交互的一種SQL句法分析器。ISQL接收用戶發出的SQL語言,將其發送給SQL Server,並將結果以形式化的方式顯示在用戶的標準輸出上。lset的一個主要組成部分,它的作用在於使用戶能夠設置和管理SQL Server上的資料庫,並且為用戶提供一種對資料庫的信息執行添加、更新和檢索等操作的簡便方法。在DWB中能完成ISQL的所有功能,且由於DWB是基於窗口和菜單的,因此操作比ISQL簡單,是一種方便實用的資料庫管理工具。 
APT是Sybase客戶軟體部分的主要產品之一,也是從事實際應用開發的主要環境。APT工作台是用於建立應用程序的工具集,可以創建從非常簡單到非常複雜的應用程序,它主要用於開發基於表格(form)的應用。其用戶界面採用窗口和菜單驅動方式,通過一系列的選擇完成表格(form)、菜單和處理的開發。
通過Open Client的DB-LIB庫,應用程序可以訪問SQL Server。而通過Open Server的SERVER-LIB,應用程序可以訪問其它的資料庫管理系統。

1.2.2 SQL Server的基本特徵
SQL Server具有如下一些基本特徵:
 1)SQL Server可以放在若干個磁碟設備上,初始安裝時所需的磁碟空間至少要17MB。
 2)SQL Server支持多庫結構,也就是說sybase系統中可以有多個資料庫。Sybase可以管理多個資料庫。
 3)SQL Server可以編譯和運行T-SQL語句,並可返回客戶程序所要求的結果。T-SQL語句是標準SQL的擴充,它除了有數據定義語句、數據操縱語句和數據控制語句之外,主要增加了流程式控制制語句。
 4)SQL Server可以管理多個用戶並具有較高的事務吞吐量和較低的事務響應時間。客戶的應用程序可以存取Server中某一個或幾個資料庫的數據。

1.2.3 SQL Server的主要內容
Sybase SQL Server是一個多庫結構的RDBMS,安裝Sybase資料庫時自動生成的系統資料庫體系結構大致如下: 
 1)主資料庫master; 
 2)模型資料庫model; 
 3)系統過程資料庫sybsystemprocs;
 4)臨時資料庫tempdb。 
也可選擇下列資料庫: 
 5)安全審核資料庫sybsecurity; 
 6)示例資料庫pubs2; 
 7)命令語法資料庫sybsyntax

1.2.3.1 系統資料庫
伺服器自身所使用的資料庫,也可以說是管理伺服器和用戶資料庫的資料庫。Sybase在安裝時,自動創建了四個系統資料庫:
master、model、tempdb、sybsystemprocs

(1) master資料庫
它是管理和控制用戶資料庫以及維護伺服器正常運行的核心資料庫,它包含許多系統表和系統過程,從總體上控制用戶資料庫和SQL Server的操作,構成了SYBASE系統的數據字典,它保存了大量的系統信息,如伺服器配置、用戶、設備等。
在master資料庫中不允許普通用戶在其中創建資料庫對象,否則會使得master資料庫的事務日誌很快變滿。如果事務日誌用盡,就無法使用dump transaction命令釋放master資料庫中的空間。
master資料庫主要記錄信息為: 
 1)登錄帳號(SQL伺服器用戶名);syslogins,sysremolelogins 
 2)正在執行的過程;sysprocesses 
 3)可修改的環境變數;sysconfigures 
 4)系統錯誤信息;sysmessages 
 5)SQL伺服器上每個資料庫的信息;sysdatabases 
 6)每個資料庫佔用的存儲空間;sysusages 
 7)系統上安裝的磁帶及磁帶信息;sysdevices 
 8)活動鎖信息;syslocks

(2)model資料庫
它是為創建用戶資料庫而提供的模板。它提供了新用戶資料庫的初型。當我們每次用CREATE DATABASE命令時,SQL Server都產生一個model資料庫的拷貝,以此作為新用戶資料庫,然後把它擴展到命令要求的尺寸。如果我們修改了model資料庫,那麼以後新創建的資料庫都將隨它而改變。
Model資料庫中包含每個用戶資料庫所要求的系統表。Model資料庫可以被修改以便定製新創建的。
下面是幾個通常用到的對model資料庫的改變: 
 增加用戶資料庫類型、規則或預設; 
 可存取SQL Server上所有資料庫的用戶用sp_adduser增加到model資料庫上;
 預設許可權(特別是guest帳號)可在model中建立;
 諸如select into/bulkcopy那樣的資料庫選項可在model中設置。這些設置反映到所有新創建的資料庫中。它們在model中最原始的值是關(off)。 
在一般情況下,大多數用戶無權修改model資料庫,也沒被授權讀取。因為model中所有內容已拷貝到新資料庫中,授權讀model沒什麼意義。

(3)tempdb資料庫
它是個臨時資料庫,為伺服器運行與處理提供一個共享的存儲區域,如group by和order by的中間結果就存放在這裡。Tempdb的空間為伺服器中所有資料庫的所有用戶所共享。
每次重啟SQL Server,伺服器的一個自動進程都拷貝model資料庫到tempdb資料庫,並清除tempdb中原來的內容。因此tempdb中的用戶表都是臨時的。臨時表分為兩類:可共享的和不可共享的。不可共享的臨時表在由create table中將符號#置於表名之前創立;可共享的臨時表通過create table中指定表名前綴tempdb..而創立。不可共享的臨時表SQL Server自動為其添加數字後綴名,且它只存在於當前會話中。

(4)sybsystemprocs資料庫
它是專門用來保存系統命令(存儲過程)的資料庫,如sp_help、sp_configure、sp_helpdevice等。當任一資料庫用戶運行以sp_開頭的存儲過程時,SQL Server按照以下順序查找:當前資料庫、sybsystemprocs資料庫、master資料庫。

其他可選資料庫:
(5)安全審核資料庫sybsecurity 
資料庫中保存系統的安全審核信息,它可跟蹤記錄每個用戶的操作情況,為維護系統安全提供控制手段。 

(6)示例資料庫pubs2 
為用戶提供一個學習SYBASE的資料庫模型。 

(7)命令語法資料庫sybsyntax 
庫中保存SYBASE資料庫的命令語法及支持的語言庫。 

1.2.3.2 用戶資料庫
用戶資料庫是我們使用Sybase伺服器的真正目的。要管理用戶數據,必須在Sybase中創建自己的資料庫,是指用create database命令創建的資料庫。所有新的用戶資料庫都要在master資料庫中創建,也就是說,不能存取master資料庫的用戶是無權創建新的資料庫的。SA可以將創建資料庫的許可權授予其他用戶。新建資料庫中存在一些系統表,在sysusers表中至少有一條記錄,既該資料庫的創建者。資料庫創建時,創建者即為該資料庫的 owner, 當然創建者可以將這一地位或這一所有權用系統過程授予別的用戶。
資料庫中的主要內容——資料庫對象:表、視圖、臨時表、索引、主鍵、外鍵、預設值、規則、存儲過程、觸發器等

2 Sybase基礎知識


2.1 Sybase安裝
安裝建立SQL Server以後,要建立放置資料庫、日誌和索引的邏輯磁碟設備。資料庫、日誌和索引的配置應注意以下原則:
1)不要把任何用戶對象安裝在master資料庫中。
2)日誌應該保存在與資料庫分離的磁碟上。
3)可以通過跨越多個設備分配工作優化I/O性能。

2.1.1 Sybase 的初始配置
需要做的內容:
1)更改sa的登錄口令;
2)命名伺服器;
3)修改文件名(保證Sybase Central正常啟動);
4)更改預設設備;
5)增加tempdb的空間。
6)創建用戶資料庫(創建資料庫設備,設備大小以頁(2K)為單位)

2.2 系統管理的主要內容
1)物理資源的管理
2)用戶及其許可權管理
3)資料庫的備份與恢復
4)SQL Server的配置參數
伺服器配置是系統管理員的職責,正確的配置對系統性能有重大的影響。有兩個系統表存儲配置信息:sysconfigures和syscurconfigs;sysconfigures是永久性的,一旦系統運行,sysconfigures的信息就拷貝到syscurconfigs中。顯示配置和改變配置使用系統過程sp_configure。
有兩種配置值:動態的和靜態的,動態值一旦改變立即生效,靜態值要在系統重啟動后才起作用。

2.3 系統的啟動和關閉 
2.3.1 啟動SQL Server 
應用SQL Server安裝程序(sybinit)創建SQL Server或Backup Server, 默認文件名為RUN_SYBASE 和RUN_SYB_BACKUP,放在$SYBASE/INSTALL目錄下。Startserver 用來啟動SQL Server 或Backup Server:
可以通過showserver查看SQL Server 和Backup Server是否已經啟動。
SQL Server的啟動過程 :master資料庫啟動  -- Sybsystemproces資料庫啟動  --  tempdb--model --  用戶資料庫 。
啟動SQL Server的單用戶模式 :如果要恢復一已被損壞的master資料庫,則必須要啟動SQL Server的單用戶模式。單用戶模式下僅允許一個系統管理員向SQL Server註冊。 
Startserver -f RUN_SYBASE -m 

2.3.2 關閉伺服器 
關閉SQL Server可以在isql中使用T-SQL命令: 
 關閉SQL備伺服器 :shutdown SYB_BACKUP 
 關閉SQL主伺服器 :shutdown [with nowait] 

2.4 資料庫設備與存儲空間管理 
初始安裝SQL Server時,安裝程序和腳本初始化主設備,並建立master、model、tempdb和sybsystemprocs資料庫。系統資料庫、預定義設備和段按下列默認方式組織:
1)master、model、tempdb資料庫安裝在主設備master上;
2)sybsystemprocs資料庫安裝在安裝時選擇的設備上(sysprocsdev);
3)為每個資料庫創建三個預定義段:system、default和logsegment;
4)所有用戶創建資料庫的默認設備是master設備;
5)如果選擇安裝了審計資料庫sybsecurity,它位於自己的設備上。

2.4.1 設備與存儲管理考慮的主要問題
(1)恢復問題
     物理磁碟崩潰時,磁碟鏡像或在單獨的物理設備上保存日誌為資料庫恢復提供了兩種機制。

(2)性能問題
     磁碟讀寫速度是I/O操作的瓶頸,正確地把資料庫對象放置到物理設備上有利於改進性能;把日誌和資料庫對象置於單獨的設備上可以提高系統性能;把表放在一個硬碟上而把索引放在另一個硬碟上,由於把工作分置於兩個硬碟驅動器上,所以可以確保物理讀寫速度加快;磁碟鏡像會降低磁碟寫的速度。

2.4.2 設備(Device)
Sybase SQL Server是一個多庫資料庫系統。這些資料庫包括系統資料庫和用戶資料庫。 而不論是系統資料庫還是用戶資料庫,都建立在資料庫設備上。即Sybase將資料庫中的所有數據存放在設備上。刪除設備前必須刪除其上的所有資料庫,刪除設備的命令是:sp_dropdevice。

2.4.2.1 設備的概念
設備是Sybase預先配置的專門存放資料庫的一塊連續的磁碟空間,並且它被映射到一操作系統文件或一原始磁碟分區上。即它不是指一個可識別的物理設備,而是指用於存儲資料庫和資料庫對象的磁碟原始分區或操作系統文件。它有兩個對應的名稱:邏輯名和物理名。NT僅支持設備映射到文件。所有的資料庫都創建在資料庫設備上。增加一個新的資料庫設備時,必須對這些設備「初始化」。初始化的過程就是將物理磁碟、磁碟分區或操作系統文件變為SYBASE資料庫可以識別的設備。初始化資料庫設備使用DISK INIT命令。
設備與資料庫之間的關係:多對多關係。一個資料庫可以被創建或擴充到多個設備上,一個設備也可以被用來存放多個資料庫。不同的設備操作系統可以對其并行地讀寫,因此我們可以人為地將一個資料庫放置到多個資料庫設備上。
設備的分類:Database Device和Dump Device。資料庫設備存放資料庫和事務日誌,轉儲設備用來存放資料庫或日誌的備份。

2.4.2.1.1 默認設備
在沒有指定設備的情況下,用戶創建的任何數據對象自動存放在默認設備上。初始安裝后,系統的主設備master被預指定為默認設備,因此要儘快創建自己的默認設備。確保系統主設備安全,指定僅被日誌使用的設備不是默認設備。
Sp_diskdefault 設備名[,DefaultOn|DefaultOff] 

2.4.2.2 磁碟鏡像
磁碟鏡像是出於資料庫安全性的考慮,當介質失敗時,磁碟鏡像能提供不間斷恢復。磁碟鏡像是磁碟上的數據的絕對拷貝。如果某一硬碟事故發生,則該被損壞的拷貝就自動變成離線狀態,因而所有的讀寫都被引向未被損壞的拷貝。
Sybase的磁碟鏡像是在設備級上進行的,因此磁碟鏡像實質上是設備鏡像。當對某一設備進行鏡像操作時,Sybase自動創建一個附加設備,由鏡像處理程序將原設備上的所有數據拷貝到鏡像設備上。
    如果要使某一資料庫成為鏡像,被分配給該資料庫的每一設備都必須成鏡像。Master設備在伺服器中地位特殊,如果它損壞了,SQL Server將崩潰。因此,如果有可能總是要鏡像Master設備(在另一磁碟上)。
    
2.4.3 創建與使用段
    段(Segment)是資料庫設備上磁碟空間的邏輯組合,它可以看作是指向一個或多個資料庫設備的標籤。利用段可以控制資料庫對象的存放位置,可以將資料庫對象分類存放到不同的段上。
    設備與段之間的關係:多對多關係。一個設備上可以創建多個段,一個段也可以覆蓋多個設備。
資料庫設備從邏輯上被劃分為資料庫段以允許將某一特定的對象放置在指定的段上(創建對象時指定),一資料庫設備可擁有多達192個段,一段可使用255個邏輯設備上的存儲空間。當用戶創建一個資料庫時,SQL SERVER 會自動在該資料庫中創建三個段?用來存儲資料庫的系統表、事務日誌和其他資料庫對象 

2.4.3.1 使用段的優點
1)控制空間的使用:放在一個段上的資料庫對象不會在段外增長;
2)提高性能:處於不同磁碟設備上的段可以并行地讀寫;
3)處理大表:利用段,可以將一個大表分段放在獨立的物理設備上,如將一個表的文本或圖象數據存儲另外的一個段上。
兩個資料庫放在同一設備的不同段上,它們不會相互影響;當資料庫增加空間時,增加的空間會自動分配到它的每一個段上;

2.5 使用閾值管理
    閾值(Threshold)管理是一種自動監控資料庫自由空間的機制,Sybase的閾值管理允許用戶為資料庫的某個段上的自由空間設置閾值並定義相應的存儲過程。當該段上的自由空間低於所置頭閾值時,Sybase自動運行相應的存儲過程。
    在一個實際運行的資料庫中,日誌的增長速度一般要高於數據的增長,一旦日誌段的自由空間用盡,SQL Server在默認情況下會掛起所有數據操縱事務,客戶端應用程序停止執行。
    在每個分離的段上存儲其事務日誌的資料庫均自動設置有最後機會閾值(Last Chance Threshold),其閾值是備份事務日誌所需的自由空間的估計值。當該段上的自由空間低於所置閾值時,Sybase自動運行名為sp_thresholdaction的存儲過程。該過程的名稱及參數由系統預定義,內容由用戶編寫。

2.6 資料庫與事務日誌 
通常用戶資料庫由系統管理員創建,它的默認屬主是DBO。系統過程sp_changeddbowner可改變資料庫的屬主關係,它必須由資料庫管理員在要改變屬主關係的資料庫中執行。 
日誌文件是用來記錄資料庫每一次修改活動的文件。SQL Server中的每一個資料庫都有自己的日誌文件,即系統表syslogs,也稱為事務日誌。事務日誌是撤消事務和出現故障時恢復事務的依據。在某些情況下,事務日誌比數據本身更為重要。
資料庫的修改是以事務為單位進行的。一個事務就是一個操作序列,這些操作要麼全做,要麼全不做,它是一個不可分割的工作單位。任何一個事務具備如下特徵:
1)執行的原子性(Atomic);
2)保持數據的一致性(Consistency);
3)彼此的隔離性(Isolation);
4)作用的持久性(Durability);
上述事務的四個特徵被稱為事務的ACID準則。
      事務在運行過程中,SQL Server把事務開始、事務結束以及對資料庫的插入、刪除和更新等每一個操作作為一個日誌記錄存放到事務日誌中。事務中的更新操作首先在資料庫緩衝區(內存)中進行,緩衝區分別有用來記錄操作活動的數據頁(data page)和日誌頁(log page)。當運行到commit tran時,日誌頁首先從緩衝區寫到磁碟上,而後數據頁從緩衝區寫到磁碟上,即遵循「先寫日誌(write_ahead log)」的原則,這樣保證出現故障的情況下,通過日誌能夠得到最大限度的恢復。恢復必須撤消發生故障時還未提交的事務,已完成的事務若仍有未從緩衝區寫到資料庫設備中,還要重新運行該事務。

2.7 資料庫安全性與用戶管理 
資料庫的安全性是指保護資料庫以防止不合法的使用所造成的數據泄露、更改或破壞。SQL Server的安全管理是一種基於角色(role)的管理方法,位於不同許可權層次(或角色)的用戶具有不同的用戶許可權。
      規定用戶許可權有三個因素:用戶、數據對象和操作,即什麼用戶在哪些數據對象上可以執行什麼操作。
      訪問SQL Server中數據的四道屏障:
1)操作系統——操作系統登錄
2)Sybase伺服器——伺服器登錄
3)Sybase資料庫——資料庫用戶登錄
4)資料庫對象——對象授權

2.7.1 用戶管理概述
在SYBASE資料庫中,用戶管理是系統管理的一個重要組成部分,但其重要性卻往往被人忽視。許多時候,操作資料庫的命令不成功常與用戶管理有關,而許多誤操作命令的發生也可以通過用戶管理來避免。因此,弄清用戶管理的一些基本概念,對成功進行資料庫系統管理有重要的作用。

2.7.1.1 SQL SERVER註冊用戶和資料庫用戶 
剛接觸到這兩個概念的時候,可能會有所混淆,但只要了解SYBASE SQL SERVER的結構后,就會清楚。SYBASE SQL SERVER為一進程,進程本身可管理多個資料庫。而有些資料庫是相互獨立的,有些資料庫是可以共用的,如tempdb和sysbsystemprocs資料庫。SQL SERVER與本身資料庫的關係猶如城市與其中樓房的關係,當進入某一城市時需某一合法的身份,但進入城市的人並非每個樓房都可進入,即使允許進入也不能幹某些事。SQL SERVER註冊用戶與資料庫用戶關係即是如此。當SQL SERVER創建註冊用戶后,該用戶就能合法進SQL SERVER,該註冊用戶信息會放在master資料庫中的 syslogins表中。但只有註冊用戶成為某一資料庫用戶,並且對該用戶賦予某些許可權時,該註冊用戶才能在限制條件下使用資料庫中的表。 

2.7.1.2 SQL SERVER資料庫用戶分類 
在SQL SERVER中用戶一般分為以下四種:
1)sa用戶。
2)資料庫屬主
3)資料庫對象屬主。
4)資料庫普通用戶。
sa用戶在SQL SERVER中為最高等級用戶,SQL SERVER中所有命令都可執行。
資料庫屬主(dbo)用戶可對本資料庫中所有對象(如表、視圖、存儲過程等)進行操作,一般有三種途徑創建:
a.為系統管理員的用戶;
b.系統管理員的用戶將創建資料庫的許可權賦予某個SQL SERVER中註冊用戶,由該用戶進行資料庫的創建后,自然形成資料庫屬主;
c.系統管理員的用戶創建資料庫后,將某個SQL SERVER中註冊用戶變為資料庫的屬主。
資料庫對象屬主為創建該對象的用戶,在實際的資料庫的管理中,一般為資料庫屬主。
資料庫普通用戶必須在資料庫屬主對本資料庫中某些對象(如表、視圖、進程等)賦予某些許可權時,才可對本資料庫中某些對象進行允許的操作。
幾者的關係是相互包含的:系統管理員的用戶在進入某個資料庫后,自然成為該資料庫的屬主,資料庫屬主可看作為特殊的資料庫普通用戶。 

2.7.2 別名(aliases)與組(group) 
別名(aliases)與組(group)在資料庫管理中是經常用到的,它能簡化資料庫用戶管理,方便對用戶的監控。
所謂別名(aliases)即將SQL SERVER中的註冊用戶以同一個資料庫用戶的身份來訪問資料庫,並具有與該用戶相同的許可權。也就是說,在資料庫中只要建立一個資料庫用戶,對該資料庫用戶各種操作定義好,並使SQL SERVER 中已經定義好註冊用戶成為該資料庫用戶的別名用戶后,即擁有與該用戶相同的許可權。這樣一來,註冊用戶不必成為資料庫的用戶即可訪問資料庫,對所有別名用戶的許可權的控制只需通過對一個資料庫用戶的控制達到。如:有一SQL SERVER名為TEST.SER,有一名為EXAMPLE的資料庫,其中有一名為OK的表,當系統管理員為TEST.SER創建名為JOHN和KATE的註冊用戶,EXAMPLE的資料庫中有一名為OK_SELECT的資料庫用戶,該資料庫用戶有對OK表的查詢許可權。將JOHN和KATE這兩個註冊用戶變為OK_SELECT的別名后,JOHN和KATE即可進入資料庫,並擁有與OK_SELECT的資料庫用戶相同的許可權。
組(group)為資料庫用戶的集合,即通過對組(group)的許可權的控制達到對該組中資料庫用戶的控制,但也可對該組中資料庫某些用戶進行格外的許可權控制。在上例中的EXAMPLE的資料庫中有一OK_INSERT的組,它對OK的表有插入的許可權,資料庫中有兩個用戶:MARRY和KITY,當這兩個用戶加入到OK_INSERT組后,MARRY和KITY就有對OK表的插入的權??的控制可得。而使MARRY對OK表有查詢許可權,僅對MARRY用戶賦權即可。而別名則不行。 

2.7.3 SYBASE SQL SERVER的角色 
一般在管理分工較細的資料庫系統中,sa用戶往往被分為三種角色:系統管理員角色(SA role)、系統安全員角色(SSO role)和操作員角色(OPER role)。
sa用戶往往被鎖住,其權力被以上三種角色所瓜分。這三種角色將分別用不同的資料庫註冊用戶承擔。
角色是許可權的集合。系統預定義角色: 一個真正的資料庫管理員應該是整個伺服器及其資料庫的擁有者,具有管理伺服器及其資料庫的所有許可權。在一個大的系統中,資料庫管理員往往不只由一人承擔,而是將管理任務進行功能劃分,每人提當不同的責任。系統預定義角色就是為適應這種要求而設計的。
 1)系統管理員(sa_role)
sa_role角色擁有執行與資料庫具體應用無關的管理許可權:
 a.安裝與更新SQL Server
 b.管理伺服器的物理存儲
 c.配置系統設置參數;
 d.創建用戶資料庫;
 e.授予SQL Server用戶許可權
 ┅┅
 2)系統安全管理員(sso_role)
a.sso_role用來實施安全上敏感的操作,執行有關安全性的任務:
 b.建立伺服器登錄帳戶;
 c.管理口令;
 d.授予除sa_role之外的任何角色;
 e.管理審計系統;
 ┅┅
 3)操作員(oper_role)
a.oper_role執行全伺服器範圍的資料庫操作,如備份與恢復任意資料庫等:
 b.轉儲資料庫與日誌
 c.轉載資料庫與日誌
 ┅┅

2.8 資料庫的備份與恢復 
資料庫的備份與恢復是SQL Server保障數據安全的一種重要手段,為防止意外,資料庫管理員必須定期和經常製作資料庫的備份。一旦系統出現故障,數據能夠得到及時的恢復。

2.8.1 基本概念
(1)事務處理及其日誌
SQL Server使用事務來跟蹤所有資料庫變化。事務是SQL Server的工作單元。一個事務包含一條或多條作為整體成功或失敗的T_SQL語句。每個資料庫都有自己的事務日誌,即系統表syslogs,事務日誌自動記錄每個用戶發出的每個事務,它影射了每個事務足夠多的信息,以確保數據能夠被恢復。

(2)檢查點(CheckPoint)
伺服器在檢查點發生時更新數據。在伺服器發出一個檢查點時:
1)更新數據。
2)在日誌中記錄下執行檢查點的標記。
檢查點可把所有「臟頁」寫到資料庫設備上,「臟頁」是指從上一次檢查點以來,在內存中修改、但沒有在磁碟上修改的頁。SQL Server的自動檢查點機制保證了被完成的事務修改的數據頁有規律地從內存中的緩衝區寫到資料庫設備上。

2.8.2 資料庫備份
若硬體介質出現故障(如磁碟損壞),當且僅當事先已對資料庫及其事務日誌作了備份,才能恢復資料庫。
      注意:絕對不要使用操作系統的拷貝資料庫設備,把這樣一個拷貝裝入SQL Server將導致大量資料庫受損。
      備份的類型:
1)完全備份
2)增量備份——備份事務處理日誌
說明:
 a.只有把事務日誌放在單獨的設備上,才能進行增量備份;
 b.備份事務日誌會截斷日誌,因此備份的內容是自上次備份以來的事務處理。
 c.備份之前要啟動備份伺服器,並最好創建轉儲設備。
備註:truncate_only與no_log選項用於刪除事務處理而不作拷貝。Truncate_only截斷日誌;在事務處理日誌完全滿時用no_log,它不為資料庫建立檢查點。兩個選項都會丟掉日誌。當使用了這兩個參數后,應及時備份整個資料庫。no_truncate拷貝日誌但不截斷日誌,在出現介質錯誤時使用該選項。

2.8.3 資料庫的恢復
使用load database載入備份到現有資料庫,資料庫可以是用於創建轉儲的資料庫,也可以不是。
      由於事務日誌在恢復資料庫中的特殊作用,應定期備份資料庫及其事務日誌,而且事務日誌的備份要更頻繁一些。如:資料庫每周備份一次,事務日誌每天備份一次。
SQL Server提供了兩種不同類型的恢復:一類是系統自動完成的恢復;另一類是人工完成的恢復。 

1)系統自動恢復 
系統自動恢復是在系統軟體出現故障的情況下通過重新啟動SQL Server進行恢復。 
自動恢復從master資料庫開始,然後是model資料庫,再是temporary資料庫,最後是用戶資料庫。在每個資料庫上,恢復機制觀察事務日誌。如果日誌寫入比資料庫更近的數據,則向前恢復資料庫。如果事務尚未完成,則要回退它們。 

2)介質故障的恢復 
一旦介質發生故障,只有通過以前備份的資料庫和事務日誌才能恢復資料庫,為此我們需要經常備份資料庫和事務日誌。備份資料庫和事務日誌我們使用dump命令,而恢復資料庫和事務日誌我們使用load命令。 
與創建資料庫需要一個資料庫設備類似,我們備份資料庫和事務日誌也需要一個卸出設備。增加卸出設備可以通過系統過程sp_addumpdevice來實現。卸出設備可以是磁碟、磁帶或操作系統文件。 
在備份資料庫前的所有事務日誌備份都是沒有意義的。我們一般不經常備份資料庫,但我們要經常備份事務日誌。這是因為備份事務日誌比備份資料庫需要更少的時間和存儲空間。 
3)恢復用戶資料庫 
要恢復已被破壞的資料庫,可以按如下步驟進行: 
a.用帶no_truncate選項的dump命令卸出用戶資料庫事務日誌。 
b.用和被破壞的資料庫的同樣的結構建立一個新的資料庫。 
c.用load命令重新裝入資料庫和事務日誌。 

2.9 資料庫與T-SQL語言 
關係資料庫以關係模型為基礎,它由以下三部分組成:
1)數據結構——模型所操作的對象、類型的集合
2)完整性規則——保證數據有效、正確的約束條件
3)數據操作——對模型對象所允許執行的操作方式
    關係(Relation)是一個由行和列組成的二維表格,表中的每一行是一條記錄(Record),每一列是記錄的一個欄位(Field)。表中的每一條記錄必須是互斥的,欄位的值必須具有原子性。

2.9.1 SQL語言概述
      SQL(結構化查詢語言)是關係資料庫語言的一種國際標準,它是一種非過程化的語言。通過編寫SQL,我們可以實現對關係資料庫的全部操作。
1)數據定義語言(DDL)——建立和管理資料庫對象
2)數據操縱語言(DML)——用來查詢與更新數據
3)數據控制語言(DCL)——控制數據的安全性
      T-SQL語言是Sybase對SQL92標準的一種擴展,主要在它的基礎上增加了三個方面的功能:自己的數據類型/特有的SQL函數/流程式控制制功能。
      T-SQL中的標識符使用說明:標識符由1-30個字元或數字構成,但首字元必須為字母。臨時表的表名以#開頭,長度不能超過13個字元。

上一篇[細胞膜]    下一篇 [程度]

相關評論

同義詞:暫無同義詞