老南瓜的困惑:搞不清SQL SERVER 2005 中的用戶


  老南瓜的困惑:搞不清SQL SERVER 2005 中的用戶

  工作中總有許多的困惑,經常搞一搞,就不再困惑了。

                                                            ―――老南瓜

  老南瓜一直對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; mailto: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

 

  •   創建一個User
Code

 

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

  

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: