亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Sql Server用戶名和登錄名的關系總結

添加時間:2014-3-4 16:49:03  添加: 思海網絡 

  Sql Server中的用戶名和登錄名的關系:

  登錄名:服務器方的一個實體,使用一個登錄名只能進入服務器,但是不能讓用戶訪問服務器中的數據庫資源。每個登錄名的定義存放在master數據庫的syslogins表中

  用戶名:一個或多個登錄對象在數據庫中的映射,可以對用戶對象進行授權,以便為登錄對象提供對數據庫的訪問權限。用戶定義信息存放在每個數據庫的sysusers表中。

   SQLSERVER把登錄名與用戶名的關系稱為映射。用登錄名登錄SQLSERVER后,在訪問各個數據庫時,SQLSERVER會自動查詢此數據庫中 是否存在與此登錄名關聯的用戶名,若存在就使用此用戶的權限訪問此數據庫,若不存在就是用guest用戶訪問此數據庫(guest是一個特殊的用戶名,后 面會講到)。

  一個登錄名可以被授權訪問多個數據庫,但一個登錄名在每個數據庫中只能映射一次。即一個登錄可對應多個用戶,一個用戶也可 以被多個登錄使用。好比SQLSERVER就象一棟大樓,里面的每個房間都是一個數據庫.登錄名只是進入大樓的鑰匙,而用戶名則是進入房間的鑰匙.一個登 錄名可以有多個房間的鑰匙,但一個登錄名在一個房間只能擁有此房間的一把鑰匙。

  鏈接或登錄Sql Server服務器時是用的登錄名而非用戶名登錄的,程序里面的鏈接字符串中的用戶名也是指登錄名。

  SQLSERVER中有幾個特殊的登錄名和用戶名:

  我們常見的dbo(用戶名)是指以sa(登錄名)或windows   administration(Windows集成驗證登錄方式)登錄的用戶,也就是說數據庫管理員在SQLSERVER中的用戶名就叫dbo,而不叫  sa,這一點看起來有點蹊蹺,因為通常用戶名與登錄名相同(不是強制相同,但為了一目了然通常都在創建用戶名時使用與登錄名相同的名字),例如創建了一個 登錄名稱為me,那么可以為該登錄名me在指定的數據庫中添加一個同名用戶,使登錄名me能夠訪問該數據庫中的數據.當在數據庫中添加了一個用戶me  后,之后以me登錄名登錄時在該數據庫中創建的一切對象(表,函數,存儲過程等)的所有者都為me,如me.table1,me.fn_test(),而 不是dbo.table1,dbo.fn_test().

  SQL Server中還有一個特殊的數據庫角色public,它存在于每一個數據庫中,包括系統數據庫,如master、msdb、model和用戶數據庫,數據庫的所有用戶都屬于public角色,并且不能從public角色中刪除。

  在SQLSERVER數據庫中,guest帳戶是特殊的用戶帳戶。如果用戶使用USE database語句訪問的數據庫中沒有與此用戶關聯的帳戶,此用戶就與guest用戶相關聯。 

   另外SQLSERVER采取登錄名-用戶名的安全規則,和Oracle里面的schema有點像。SQLSERVER使用所有者進行限定(類似于 Oracle中的schema),是因為不同的用戶可能創建同名的對象,例如登錄名me和登錄名you在pubs數據庫中分別創建了用戶名me和you, 這二個用戶都創建了testtable這個同名表,而這二個表雖然同名但結構或數據可能完全不同,為了避免調用錯誤,必須使用所有者名稱進行限定.

  如何來調用別的用戶創建的對象呢?例如me用戶訪問you用戶創建的表或訪問dbo創建的表. 此種情況,必須同時滿足二個條件: 

  1.將me用戶的數據庫角色設置為db_owner,否則無法訪問其他用戶(包括dbo用戶)創建的對象.(企業管理器-> 用戶,右鍵菜單 <屬性> 中設置)  :

  2.使用所有者進行限定. 

  例如me訪問you創建的testtable: 

  select   *   from   you.testtable 

  另外,dbo用戶作為管理員,系統賦予其所有的權限,可以調用任何用戶創建的對象. 

  若某個數據庫存在2個或2個以上的用戶名,如果具有db_owner角色的用戶在訪問對象時省略了所有者,則系統先查找該用戶的對象,若找不到則查找dbo用戶是否有同名對象.例如: 

  select   *   from   testtable     或 

  select   *   from   pubs..testtable

  實驗:

  l   創建登錄名login_ibrahim

  l   用此登錄名登錄“查詢分析器”,發現只能查看系統自帶的數據庫,如master、Northwind、pubs等

  l   將登錄名login_ibrahim的服務器角色設置為Database Creator(若不設置此項,則無法創建數據庫)

  l   在“查詢分析器”中輸入create database test,然后執行,這會創建一個名為test的數據庫

   l  查看test數據庫擁有的用戶名,發現系統會自動創建了dbo和guest這兩個用戶名。其中dbo用戶名對應的登錄名為 login_ibrahim,不能更改test數據庫登錄名login_ibrahim所對應的用戶名dbo,此時test數據庫的dbo用戶名,其對應 的登錄名有兩個,一個是login_ibrahim,另一個是sa,因為sysadmin 固定服務器角色的成員會自動映射到  dbo。

  l  創建登錄名login_ibrahim2,不設置任何服務器角色,將可訪問數據庫設置為test

  l  打開test數據庫的用戶名列表,會發現系統會為登錄名login_ibrahim2自動創建一個同名的用戶名login_ibrahim2,然后再創建一個名為T_ibrahim的數據表

  l  此時用login_ibrahim2登錄SQLSERVER,發現不能在test數據庫中創建表

  l  用login_ibrahim登錄SQLSERVER,為login_ibrahim2用戶名授予對test數據的db_ddladmin權限

  l  此時用login_ibrahim2登錄SQLSERVER,發現可以創建數據表(創建名為T_ibrahim的數據表),并插入數據。

關鍵字:Sql Server、數據庫、服務器

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站