成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server中用戶名與登錄名關系辨析談

數據庫 SQL Server
對于SQL Server中的sa用戶,大家應該很了解。本文將為大家辨析一下的,正是其中用戶名與登錄名之間的關系。

以前經常被SQL Server中的用戶名和登錄名搞迷糊,因為用sa(登錄名)就搞定一切東西了,當然這會存在一些安全隱患。網上的文章也貌似講得很好,但還是不明白。今天決心把這個問題弄明白。mashallah, 看了N多文章加實驗后終于弄明白了(學東西最重要的還是要親自動手試試),現將學到的分享一下,看是否對你有幫助。

[[12138]]

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

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

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

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

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

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

我們常見的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角色中刪除。

在SQL Server數據庫中,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:

  1. select   *   from   you.testtable  

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

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

  1. select   *   from   testtable     或   
  2. select   *   from   pubs..testtable 

實驗:

創建登錄名login_ibrahim

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

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

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

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

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

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

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

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

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

原文標題:Sql Server用戶名和登錄名的關系總結

鏈接:http://www.cnblogs.com/ibrahim/archive/2010/06/21/sqlserver_loginname_username.html

【編輯推薦】

  1. SQL SERVER 2005 JDBC 連接的方案描述
  2. SQL Server 2000 JDBC驅動的正確安裝步驟
  3. SQL Server 連接字符串的一些聲明
  4. SQL Server 字符串在實際操作中的注意事項
  5. SQL Server 2000 導入2005的數據很簡單

 

責任編輯:彭凡 來源: 博客園
相關推薦

2011-08-15 14:52:07

數據庫登錄名數據庫用戶名

2010-09-27 14:48:12

SQL用戶名

2022-06-24 08:48:47

用戶名密碼登錄

2010-05-31 09:10:20

Myeclipse S

2009-12-23 13:42:08

ASP.NET事務

2023-12-26 09:33:47

2009-10-26 16:08:40

Oracle默認用戶名

2019-08-26 19:24:55

Podman容器Linux

2010-10-29 11:51:30

oracle用戶名

2009-10-21 16:34:03

Oracle用戶名重建索引

2018-01-02 10:06:49

Linux修改用戶名修改家目錄

2009-08-05 13:32:07

Oracle按用戶名重

2013-01-04 17:51:28

Android開發SharedPrefe解析用戶名

2010-09-27 15:43:47

SQL語句

2012-01-05 11:20:08

JavaUML

2010-02-25 16:09:15

Fedora驅動程序

2009-10-21 17:13:32

Oracle用戶名

2011-06-13 16:54:25

WEB標準SEO

2011-06-13 15:45:58

WEB標準SEO

2011-07-22 15:01:28

MongoDB權限管理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 最新午夜综合福利视频 | 日本免费网 | 欧美在线一二三 | 在线国产一区二区 | 亚卅毛片 | 欧美日韩在线视频一区二区 | 日本 欧美 三级 高清 视频 | 亚洲精品国产成人 | 欧美日本一区 | 亚洲欧美一区二区三区视频 | 亚洲国产精品一区二区三区 | 亚洲欧美精 | eeuss国产一区二区三区四区 | 国产一区久久久 | 亚洲精品成人av | 国产亚洲精品精品国产亚洲综合 | 亚洲精品久久国产高清情趣图文 | 国产伦精品一区二区三区照片91 | 91久久国产综合久久 | 国产一区二区三区 | 天天综合久久网 | 欧洲一级毛片 | 九九在线精品视频 | 最新日韩av | 久草99 | 国产免费一区二区 | 成人毛片在线视频 | 欧美一区二区三区视频在线观看 | 亚洲一区二区不卡在线观看 | 一级全黄视频 | 久久人人爽人人爽人人片av免费 | 日韩中文字幕一区二区三区 | 毛片a级毛片免费播放100 | 狠狠av | 国产在线精品一区二区三区 | 国产成人99久久亚洲综合精品 | 五月精品视频 | 草草影院ccyy| 欧美精品久久久久 | 视频一区 国产精品 | 久久久www成人免费无遮挡大片 |