前言:當我們學到“數據庫安全性控制”這章時,會遇到登錄名與用戶這兩個概念。如果沒有理清楚,那麼在SQL Server 軟件中會不知如何下手。本篇文章就是來淺析他們之間的關係以及再該軟件中如何創建。
一、登錄名
我們登陸SQL Server軟件時,會出現連接到服務器。通常我們是默認Windows 身份驗證直接登陸的。
但是我們要用SQL Server 身份驗證登陸的話,就需要登陸名和密碼才能登陸了。
那麼,什麼是登錄名?
就是一個賬號密碼可以登陸SQL Server軟件。
比如,系統通常默認一個sa,就是登錄名,它擁有所有權限。
但是,新創建的登錄名只能連接進去,沒有任何權限。
如何創建登錄名?
通過Windows 身份驗證默認登陸進去,或者SQL Server身份驗證sa登錄名登陸進去。
- 可視化嚮導創建登錄名
2. SQL 語法創建登錄名
CREATE LOGIN 登錄名 WITH PASSWORD=‘密碼’,
DEFAULT_DATABASE= 數據庫名
例如:
CREATE LOGIN David WITH PASSWORD='123456',
DEFAULT_DATABASE= TPCH
二、用戶
通過圖片我們可以看到,有兩個安全性,一個是總數據庫的安全性,另一個是具體某個數據庫的安全性;具體某個數據庫裏的安全性纔有用戶。
那麼,什麼是用戶?
我們可以這樣理解,用戶就是可以登陸某個數據庫的賬號。比如,登錄名就是登陸總數據庫的賬號。
但是,他們之間是有區別和聯繫的。
如果我們用新建的登錄名連接進去,正常情況下是查看不了某個數據庫的。
爲什麼?
因爲沒有給登錄名創建用戶。只有該登錄名下有用戶,才能夠查看具體數據庫。至於能看到具體數據庫什麼內容,這裏就要涉及到權限和角色了。
所以,先有登錄名,纔有用戶;用戶是在登陸名下的。
注意:
通常情況下,新建的登錄名下只能創建一個用戶,再創建就會報錯。
如何創建用戶?
- 可視化嚮導創建用戶
- SQL 語法創建用戶
CREATE USER 用戶名 FOR LOGIN 登錄名 WITH DEFAULT_SCHEMA=模式名
例如:
CREATE USER David FOR LOGIN David WITH DEFAULT_SCHEMA=dbo
總結:
先有登錄名,再有用戶。
登錄名是有賬號密碼的,而用戶沒有。
登錄名是用來連接到服務器的,而用戶是用來訪問具體某個數據庫的。
登錄名進去可以查看什麼數據庫,就需要通過用戶來去訪問;具體能訪問到什麼數據庫就要看用戶的權限。
登錄名跟用戶的名稱可以一致。