程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 淺談SQL Server 2005中兩種用戶認證方式

淺談SQL Server 2005中兩種用戶認證方式

編輯:關於SqlServer


  筆者一直對SQL Server 2005裡的用戶的概念不是很清楚,如果你和我當初一樣,認為下面的兩個用戶是一個概念,那就有必要點上一根煙,喝上一品茶,細細品味一下這之間的不同了。

  左邊的圖標出了一個可以訪問AdventureWorks數據庫的用戶,而右邊的圖則標出了整個數據庫服務器所有的“用戶”。

  大家知道,SQL Server 2005有兩種用戶的認證方式: Windows和Windows與SQL的混合認證。 對於Windows認證大家應該比較熟悉, 在這裡不多說了。 只強調一點,如果能用Windows認證就盡量用,因為相對SQL認證,Windows認證還是會更安全一些。所以它也是SQL Server 2005的默認方式。下面主要是談一下SQL認證中用戶的一些問題。

  當采用SQL認證進行開發的時候,我們經常會准備一個數據庫連接串:

  Data Source=ServerName; Initial Catalog=DatabaseName; User ID=Pumpkin; PassWord=!@#$%^&*

  注意這裡的Pumpkin,以前我一直都以為這就是SQL SERVER裡的用戶,但是通過搞一搞之後才發現並非如此。 數據庫連接串裡的Pumpkin,在SQL Server裡嚴格的說,應該叫Login,其實它是一個登錄帳號,並不是數據庫裡用來訪問表和操作數據的一個用戶。即右圖中的Pumpkin。它在數據服務器的Security"Logins的結點下,這裡面列出來的是所有的登錄帳號。它們的作用就是用來連接數據庫並通過驗證。

  有了這個帳號之後,其實我們除了登錄進來之外,其它還是什麼都做不了。如果想要訪問數據庫服務器中的某個數據庫的數據,還要建立一個USER並給它一個訪問數據表的權限。而這個用戶則是左圖中的那個Pumpkin。

  請注意,我們剛看出了關鍵的問題所在:訪問表的用戶其實必須是USER Pumpkin,不是那個LOGIN Pumpkin。所以說,在SQL Server 2005中,如果要訪問某張表,那首先需要建立一個USER,並賦給它訪問的權限。同時,要注意USER與LOGIN的關系是一對一的,即某個USER 在一定時間內只對應著唯一一個LOGIN。

  如果大家還是很困惑,那就來看一看如何時用SQL語句來創建這些用戶的:


  ◆創建一個Login

Code
CREATE LOGIN Pumpkin WITH PASSWord=’!@#$%^&’

  ◆創建一個User

Code
CREATE USER Pumpkin FROM LOGIN Pumpkin

  從SQL中應該可以看得很清楚,用戶其實基於登錄帳號創建的。我們雙擊右圖的Pumpkin,就可以看到它們的關系了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved