說到底,還是資料庫許可權分配的問題,做過許可權管理的可能更容易理解。
1.伺服器登陸名,sa就是乙個伺服器登陸名。connectionstring中的user="myloginname",myloginname就是你連線的資料庫使用者名稱,pwd="mypass",mypass是myloginname的密碼.
新建乙個登入名的時候,預設資料庫是master(如果選擇了,其他資料庫,那麼,其他資料庫的資料庫角色必須對應myloginname,否則報錯),預設伺服器角色是public,必選;使用者對映的資料庫為0個,所選資料庫的(預設第乙個)的資料庫角色成員身份::資料庫角色.預設勾選public,必選。
如果,新增登陸名的時候,使用者對映那裡,同時選擇了乙個資料庫。並且該資料庫的角色,勾選了db_ower或更高許可權。那麼sqlserver會自動給該資料庫新增乙個和登入名同名的資料庫使用者,隸屬於登入名myloginname。(注意:刪除登入名時候,不會刪除和該登入名關聯的使用者。所以,當下一次建立同名登入名給相同資料庫分配角色時候。sql會自動給該資料庫新增同名的資料庫使用者名稱,但是資料庫的使用者中,已經存在該使用者名稱,所以,會報錯。解決方案有2中,一,先刪除資料庫中的使用者名稱,在新增,同時對映。或者二:先不要對映資料庫,這樣能新增成功。然後,在去資料庫刪除老使用者名稱,重新新增,指向登入名myloginname)
2.伺服器角色名:系統內建不可新增和修改,普通登入名預設public角色,sa(系統管理員sysadmin)預設public 和sysadmin
2.1伺服器角色作用是什麼呢?
做過許可權管理都知道,系統有n個許可權。每個使用者也有若干個許可權。有很多系統職位的人的許可權是一樣的。那麼如果每個使用者分配許可權,就會造成多餘,因為可能1萬個都是一樣的許可權,那麼我們不需要分別給這一萬個使用者都分配許可權,而是給乙個角色分配許可權,然後,這一萬個使用者,都屬於這個角色就可以了。
2.2伺服器角色有哪些許可權呢?
3.資料庫使用者:隸屬於伺服器登入名;屬於某組資料庫角色以獲取運算元據庫的許可權
4.資料庫角色,登陸使用者
4.資料庫架構,
以下是引用,原文:
今天我們要說的包括伺服器登入名server login,伺服器角色server role,資料庫使用者db user,資料庫架構db schema,資料庫角色db role 。以上幾個名詞應該從伺服器與資料庫來區分,伺服器包含一到多個資料庫,其中:
伺服器登入名,指有許可權登入到某伺服器的使用者;
伺服器角色,指一組固定的伺服器使用者,預設有9組;
資料庫使用者
,指有許可權能運算元據庫的使用者;
資料庫角色
,指一組固定的有某些許可權的資料庫角色;
資料庫架構
,指資料庫物件的容器;
而通過下圖可以讓這些概念清晰一些:
即:伺服器登入名屬於某組伺服器角色;
伺服器登入名需要於資料庫的使用者對映後才擁有運算元據庫的許可權
資料庫使用者屬於某組資料庫角色以獲取運算元據庫的許可權
資料庫角色擁有對應的資料庫架構,資料庫使用者可以通過角色直接擁有架構
資料庫使用者有預設架構,寫sql語句可以直接以「物件名」訪問
非預設架構則要以「架構名.物件名」訪問
因此,新建乙個非sa賬戶並建立資料庫的過程可以如下:
1、新建登入名login1
2、新建資料庫db1
3、新建db1的架構schema1
4、新建bd1的使用者user1,登入名對應login1,預設架構選擇schema1,角色選擇db_owner
5、在登入名login1的屬性視窗裡選擇「使用者對映」,勾選db1,在使用者裡填寫user1,預設架構選擇"schema1"
6、至此,新建表名會是schema1.table1,其他物件也如此
7、當然還可以新建其他架構的物件schema2,只有user1擁有該架構,一樣可以訪問,如schema2.table2
值得注意的是,當為登入對映資料庫使用者的時候,多個資料庫可以有相同名稱的使用者,而單獨為某個資料庫新建的使用者,如user1,則在其他資料庫裡不允許同名。
建立登入名使用者名稱賦予伺服器角色資料庫角色語句
1.刪除測試使用者 exec sp revokedbaccess n u dbcreator 移除使用者對對其他使用者建的資料庫的訪問許可權,但是不能移除sa的訪問權 exec sp droplogin n u dbcreator 刪除登入使用者 2 建立登入名socct,a1 123 exec s...
資料庫角色和伺服器角色總結
sql server 2000 和 sql server 7.0 版在安裝過程中定義幾個固定角色。可以在這些角色中新增使用者以獲得相關的管理許可權。下面是伺服器範圍內的角色。全名固定服務 器角色描述 system administrators sysadmin 可以在 sql server 中執行任...
登入屬性(「伺服器角色」頁)
在 sql server 管理 studio,您可以使用 sql server 登入 id 具有dbcreator伺服器角色,才能連線到 microsoft sql server 2005 例項。bulkadminbulkadmin固定伺服器角色的成員可以執行 bulk insert 語句。dbcr...