Microsoft SQL Server 2000 超級管理手冊(三四)

本文围绕 Microsoft SQL Server 2000 展开,介绍使用者与安全性管理。涵盖验证模式(Windows 验证和混合模式验证)、建立登入帐户和使用者的方法(Enterprise Manager、T - SQL 等)、分配资料库物件和陈述式存取权限,以及安全性帐户授权等内容,助读者掌握相关管理常识。

34. 使用者與安全性管理

建立與管理使用者登入帳戶

管理資料庫存取權限

管理資料庫角色

安全性帳戶授權

本章總結

本章將學習在 Microsoft SQL Server 2000 環境下管理使用者並確保安全性。安全性管理和備份、回復計劃、容量規模及空間管理一樣,都是 DBA 例行的工作。少了系統的安全性,資料就會遺失或被破壞。

本章涵蓋了使用者和安全性管理有關的主題。我們會學習建立與管理使用者登入帳戶,以及不同的驗證模式;另外還將學習 SQL Server 使用者 ID。 使用者登入帳戶 (user login)是用來驗證使用者是否允許存取該 SQL Server,可透過 Microsoft Windows NT、Microsoft Windows 2000 或 SQL Server 來驗證。 使用者ID (user ID)分配使用者權限,用來在個別資料庫中存取特定物件。使用者 ID 與使用者登入帳戶相關,不過兩者可以設定一樣的名稱,也可以設定不一樣的名稱,這些稍後將在本章討論。本章學習在 SQL Serve r中分配的不同類型權限,以及如何使用權限。另外也會學習利用角色簡化使用者的管理工作。最後會學到的是 SQL Server 2000 安全帳戶授權。在看完本章後,您應具備管理使用者登入帳戶和安全性的常識。

建立與管理使用者登入帳戶
 

現在先透過使用者登入帳戶,開始管理使用者與安全性的第一步。本節會介紹登入帳戶的重要性,以及用於維持登入帳戶的驗證模式。接著我們會介紹三種建立登入的方法:使用 SQL Server Enterprise Manager、使用 Transact-SQL(T-SQL),以及使用 建立登入精靈 。最後回學習利用 Enterprise Manager 和T-SQL建立新的使用者帳戶。

建立使用者登入帳戶的原因
 

使用者登入帳戶可達到保護資料的目的,避免資料庫被未驗證過的使用者有意或無意的更改。利用使用者登入帳戶可識別 SQL Server 中的每一個授權使用者。每個使用者登入帳戶都擁有一組唯一的名稱和密碼。如果沒有使用者登入帳戶,所有對 SQL Server 的連接將使用同一個識別符號,這樣就無法根據不同層級的使用者設立不同層級的安全存取範圍。

使用者登入帳戶可設定不同層級的安全存取,也就是用不同的登入帳戶就有不同存取物件和執行功能的權限。我們可對某些資料庫物件加密,例如將預存程序和檢視對未驗證使用者隱藏定義。使用者登入帳戶可以允許特定層級的使用者插入或更新新資訊至資料庫資料表,而一般層級的使用者只能用唯讀方式存取資料表。

讓我們回到 第 18 章 的範例,了解登入帳戶如何限制資料的存取。範例中利用檢視表限制對特定資料的存取。假定一個 Employee 資料表中包含職員姓名、電話號碼、辦公室號碼、等級、工資、獎金等資訊,為避免使用者存取資料表中的機密資料,要先建立檢視表,只包含如職員姓名、電話號碼及辦公室號碼等較不機密的資訊,透過使用者登入帳戶限制存取基底資料表的資料,僅允許檢視表資料的存取。當然,如果沒有利用使用者登入帳戶做控管,而允許任何使用者存取檢視表或資料表,就失去了使用檢視表的意義。

驗證模式
 

驗證模式有兩種:Microsoft Windows 驗證和混合模式驗證。在 Windows 驗證模式中,作業系統會負責驗證使用者,在 SQL Server 中利用作業系統的驗證決定使用者的權限。在混合模式驗證中,Windows NT/2000 和 SQL Server 同時負責驗證使用者。在存取 SQL Server 之前,必須先登入 Windows NT/2000 帳戶。因此選擇驗證模式前,必須決定是否要使用雙重的驗證。讓我們更詳細的了解這兩種驗證模式,然後學習執行這些模式。

Windows 驗證
 

在 Windows 驗證中,SQL Server 透過 Microsoft Windows NT/2000 來提供登入的安全性。當使用者登入 Windows NT/2000,同時確認了使用者帳戶身份。然後 SQL Server 將驗證使用者是否為 Windows NT/2000 確認的使用者,然後依驗證身分給與資料庫存取的權限。SQL Server 的登入程序結合了 Windows 的安全登入程序,透過 Windows NT/2000 提供的複雜加密過程,建置了網路安全性屬性。由於 SQL Server 和 Windows 的登入安全性驗證是結合在一起的,所以這種方式不再需要別的驗證方法。用來登入的唯一密碼就是 Windows NT/2000 的密碼。

Windows 驗證是比混合驗證模式更好的安全性方法,因為它提供了附加的安全性特性,包括安全確認、加密密碼、稽核、密碼到期時間、最小密碼長度,以及在特定次數的失敗登入後自動鎖定帳戶。

混合模式驗證
 

在混合模式驗證中,使用者可以用 Windows 驗證或 SQL Server 驗證來存取SQL Server。當有一個來自非安全系統的連接時,SQL Server 會驗證這個登入,檢驗是否設定過這個 SQL Server 登入帳戶。這個帳戶驗證在 SQL Server 中執行,根據儲存在資料庫中的使用者名稱和密碼進行檢驗。在嘗試連接 SQL Server 時,系統會提示使用者提供使用者名稱和密碼。如果沒有提供這些資訊,SQL Server 系統會拒絕該使用者的存取。

在您執行 Windows 95/98 時無法使用 Windows 驗證模式,因此在這些平臺上您必須使用 SQL Server 驗證(用混合模式驗證)。此外,Web 應用程式需要 SQL Server 驗證(透過 Internet Information Server,或稱為 IIS),因為這些應用程式的使用者並不一定都在同一個網域中,因此就不能依靠 Windows 安全性,這時就需要使用 SQL Server 安全性。其他需要存取資料庫的應用程式也同樣需要 SQL Server 驗證:一些應用程式的開發人員會因為它們的應用程式結構簡單而喜歡使用 SQL Server 安全裝置。在使用 SQL Server 安全裝置時(在信任網路中),應用程式的開發人員不再需要提供應用程式自身的安全性驗證,這樣可以簡化他們的工作。

設定驗證模式
 

請依下列步驟,用 Enterprise Manager 設定驗證模式:

    • 開啟 Enterprise Manager 視窗,在左邊窗格中的伺服器名稱上按一下滑鼠右鈕,並從快顯功能表中選擇 內容 ,進入 SQL Server 屬性視窗。按一下 安全性 頁籤,如圖34-1所示。
       

      圖34-1 「SQL Server屬性」視窗的「安全性」頁籤
    • 在這個頁籤中,選擇安全性方法和啟動服務帳戶。在 安全性 區域中,指定是否使用 Windows NT/2000 和 SQL Server(混合模式)驗證,或只使用 Windows NT/2000 驗證。這裡可以指定登入稽核層級。登入稽核層級指定保留哪些登入時的記錄。應該根據安全性需要選擇稽核等級,有四個等級可使用:
      •  無 預設選項;不執行登入稽核。
         
      •  成功 記錄所有成功的登入嘗試。
         
      •  失敗 記錄所有失敗的登入嘗試。
         
      •  全部 記錄所有的登入嘗試。
         

      說明

      稽核層級是一個資料庫屬性,同樣的,這個設定將套用到所有的登入上。


    •  啟動服務帳戶 區域中,指定在啟動 SQL Server 服務時使用的 Windows NT 帳戶。可使用內建的本機系統帳戶,或指定一個帳戶後提供密碼。按 確定 接受設定。

登入帳戶和使用者
 

接下來的幾個章節中將學習建立登入帳戶和使用者。在開始之前,需要先瞭解何謂登入帳戶和使用者。這裡僅將這兩個字詞簡要的定義。

我們可以看到,要連到資料庫中,可能會需要 Windows NT/2000 使用者帳戶,或許同時也許需要使用 SQL Server 驗證。不論使用的是 Windows NT/2000 驗證或混合模式驗證,連接到 SQL Server 的帳戶都被稱為「登入」帳戶。除了 SQL Server 登入帳戶,每個資料庫會分配一組指定的使用者,這些使用者是虛擬帳戶。這些虛擬帳戶提供 SQL Server 登入帳戶一個別名。例如在 Northwind 資料庫中,也許有使用者的名稱為 manager ,而這個使用者名稱和 SQL Server 登入帳戶 guest 有關;在 pubs 資料庫中,可能有使用者名稱也是 manager ,而這個使用者名稱卻與 SQL Server 登入帳戶 sa 有關。在預設情況下,SQL Server 登入帳戶和資料庫使用者 ID 設定沒有相關,因此並沒有任何權限。

建立 SQL Server 登入帳戶
 

大部分的管理任務可以使用多種方法執行,而建立使用者登入帳戶也不例外。您能透過三種途徑的任何一種來建立登入:使用 Enterprise Manager、使用 T-SQL 或使用 Create SQL Server Login Wizard。在本節中,您將學到如何使用這三種方法建立 SQL Server 登入帳戶。

利用 Enterprise Manager 建立 SQL Server 登入帳戶
 

要利用 Enterprise Manager 建立 SQL Server 登入帳戶,請按照下列步驟操作:

    • 在 Enterprise Manager 視窗的左邊窗格中,展開伺服器群組、伺服器,然後展開 安全性 資料夾。在 登入 上按一下滑鼠右鈕,然後在快顯功能表中選擇 新增登入 ,進入 SQL Server 登入屬性視窗,如圖34-2所示。在 一般 頁籤的 名稱 文字方塊中鍵入SQL Server登入帳戶。如果使用的是Windows驗證,那麼這個名稱必須是有效的Windows NT或Windows 2000帳戶名稱。接下來在 網域 文字方塊中指定 Windows NT 或 Windows 2000 的網域。在預設區域指定使用者使用的預設資料庫和語言。在 驗證 區域中,指定是否使用 Windows NT 或 Windows 2000 帳戶,或者使用 SQL Server 驗證。如果選擇 SQL Server 驗證,則使用混合模式驗證。
       

      圖34-2 「SQL Server 登入屬性」視窗的「一般」頁籤
    • 按一下 伺服器角色 頁籤,如圖34-3所示。在這個頁籤中可以指定新的登入選取的伺服器角色,在可使用的角色清單中選擇。按一下 屬性 允許檢視和修改所選取的角色。(有關角色的討論將在本章的 <管理資料庫角色> 一節中進行。)
       

      圖34-3 「SQL Server 登入屬性」視窗的「伺服器角色」頁籤
    • 選取 資料庫存取 頁籤,如圖34-4所示。這個頁籤可指定權限使用者可以存取的資料庫。(資料庫權限將在 <管理資料庫存取權限> 一節中說明。)您可選擇多個資料庫以及對於這些資料庫可用的角色。按 屬性 就能檢視和管理資料庫角色屬性。
       

      圖34-4 「SQL Server 登入屬性」視窗的「資料庫存取」頁籤
    • 完成指定選項之後,按一下 確定 儲存登入帳戶。要看新的登入帳戶和其他登入帳戶,可以在 Enterprise Manager 中選取 登入 資料夾。在右邊的選單中會列出所有登入帳戶。

使用 T-SQL 建立登入帳戶
 

使用 T-SQL 可以建立登入帳戶,需要使用 sp_addlogin 預存程序或sp_grantlogin 預存程序。sp_addlogin 預存程序只能將 SQL Server 驗證過的使用者加入 SQL Server 資料庫中。sp_grantlogin 預存程序則可以將 Windows NT/2000 驗證過的使用者加入。

sp_addlogin 預存程序的語法如下:

sp_addlogin  [@loginame =] 'login' 
        [ , [ @passwd = ] 'password'  ]
        [ , [ @defdb = ] 'database'  ]
        [ , [@deflanguage = ] 'language'  ]
        [ , [ @sid = ]'sid'  ]
        [ , [ @encryptopt = ] 'encryptionoption'  ]

可選擇的參數如下:

  •  密碼 指定 SQL Server 登入帳戶密碼。預設值為 NULL。
     
  •  資料庫 指定登入帳戶的預設資料庫。預設值為 master 資料庫。
     
  •  語言 指定登入帳戶的預設語言。預設值為現有的 SQL Server 語言設定。
     
  •  安全性識別碼 (sid) 指定安全性識別碼(一個唯一的數值)。如果沒有指定這個數值,系統將會自動產生一個數值。使用者通常不使用 sid 參數,但是管理員可能在一些情況下會使用到 sid 。當 DBA 執行疑難排解任務時,可能需要使用 sid ,以確定正在檢查哪個登入帳戶。 sid 參數是登入帳戶的內部識別碼。
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值