1. 程式人生 > >SQL Server 登入名、伺服器角色、使用者名稱和資料庫角色 --- 解釋

SQL Server 登入名、伺服器角色、使用者名稱和資料庫角色 --- 解釋

一、基本解釋

登入名:登入伺服器的使用者賬號;

 

伺服器角色:登入名對該伺服器具有的許可權,角色分多種的,一個角色可以有多個登入名,如作業系統的系統使用者可以有多個。

 

SQL伺服器角色 

sysadmin            可以在 SQL Server 中執行任何活動。 

serveradmin       可以設定伺服器範圍的配置選項,關閉伺服器。 

setupadmin        可以管理連結伺服器和啟動過程。 

securityadmin    可以管理登入和CREATE、DATABASE許可權,還可以讀取錯誤日誌和更改密碼。 

processadmin   可以管理在 SQL Server 中執行的程序。 

dbcreator            可以建立、更改和除去資料庫。 

diskadmin          可以管理磁碟檔案。 

bulkadmin          可以執行 BULK INSERT 語句。 
 

使用者名稱:登入資料庫訪問賬號;

資料庫角色:該使用者名稱對該資料庫具有的許可權。

 

資料庫角色     

db_owner                   資料庫中有全部許可權。 

db_accessadmin     可以新增或刪除使用者 ID。 

db_securityadmin    可以管理全部許可權、物件所有權、角色和角色成員資格。 

db_ddladmin            可以發出ALL DDL,但不能發出GRANT、REVOKE或DENY語句。 

db_backupoperator  可以發出 DBCC、CHECKPOINT 和 BACKUP 語句。 

db_datareader          可以選擇資料庫內任何使用者表中的所有資料。 

db_datawriter            可以更改資料庫內任何使用者表中的所有資料。 

db_denydatareader  不能選擇資料庫內任何使用者表中的任何資料。 

db_denydatawriter   不能更改資料庫內任何使用者表中的任何資料。
 

一般使用sa(登入名)或Windows administration(Windows 整合驗證登陸方式)登陸,這種登入名具有最高的伺服器角色,可對伺服器進行任何操作,登入名具有的使用者名稱是dbo(系統級),具有對所有使用者建立的資料庫中的資料進行一切操作許可權。

 

二、詳細解釋

1.一個數據庫使用者可以對應多個架構(架構是表容器)。架構裡面包含的是資料庫表。

2.一個數據庫角色有可能涉及多個架構。資料庫角色對應的是許可權。

3.一個使用者對應一個數據庫角色。

4.登入名與資料庫使用者在伺服器級別是一對多的;在資料庫級別是一對一的。

伺服器登入名:指有許可權登入到某伺服器的使用者;

伺服器角色:指一組固定的伺服器使用者,預設有9組;

  • 登入名一定屬於某些角色,預設為public
  • 伺服器角色不容許更改
  • 登入後也不一定有許可權操作資料庫

資料庫使用者:指有許可權能操作資料庫的使用者;

資料庫角色:指一組固定的有某些許可權的資料庫角色;

資料庫架構:指資料庫物件的容器;

  • 資料庫使用者對應於伺服器登入名以便登入者可以操作資料庫
  • 資料庫角色可以新增,可以定製不同許可權  
  • 資料庫架構,類似於資料庫物件的名稱空間,使用者通過架構訪問資料庫物件

伺服器角色

sysadmin --在 SQL Server 中進行任何活動。該角色的許可權跨越所有其它固定伺服器角色。

serveradmin  --配置伺服器範圍的設定。

setupadmin  --新增和刪除連結伺服器,並執行某些系統儲存過程(如 sp_serveroption)。

securityadmin  --管理伺服器登入。

processadmin  --管理在 SQL Server 例項中執行的程序。

dbcreator  --建立和改變資料庫。

diskadmin  --管理磁碟檔案。

bulkadmin  --執行 BULK INSERT 語句。

 

資料庫角色

public
--public 角色是一個特殊的資料庫角色,每個資料庫使用者都屬於它。public 角色: 
--捕獲資料庫中使用者的所有預設許可權。
--無法將使用者、組或角色指派給它,因為預設情況下它們即屬於該角色。
--含在每個資料庫中,包括 master、msdb、tempdb、model 和所有使用者資料庫。
--無法除去。

db_owner 
--進行所有資料庫角色的活動,以及資料庫中的其它維護和配置活動。
--該角色的許可權跨越所有其它固定資料庫角色。

db_accessadmin 
--在資料庫中新增或刪除 Windows NT 4.0 或 Windows 2000 組和使用者以及 SQL Server 使用者。

db_datareader 
--檢視來自資料庫中所有使用者表的全部資料。

db_datawriter 
--新增、更改或刪除來自資料庫中所有使用者表的資料

db_ddladmin 
--新增、修改或除去資料庫中的物件(執行所有 DDL)

db_securityadmin 
--管理 SQL Server 2000 資料庫角色的角色和成員,並管理資料庫中的語句和物件許可權

db_backupoperator 
--有備份資料庫的許可權

db_denydatareader 
--拒絕選擇資料庫資料的許可權

db_denydatawriter
--拒絕更改資料庫資料的許可權

 

 

先說sqlserver裡面的資料庫級別設定:

伺服器級 -> 資料庫級 -> 架構級 - > 資料物件級,比如說:Server.DataBase1.dbo.Table1;這裡的意思就是Table1這個表屬於dbo這個架構

,dbo這個架構屬於DataBase1這個資料庫,DataBase1這個資料庫屬於Server這個伺服器。裡面的架構其實就是一個容器,好像就是面向物件裡面的

名稱空間,一個使用者可以擁有多個架構,但是不能對沒有擁有的架構進行操作。一個數據庫角色,是對不同架構裡面資料物件的許可權組織,也有可能涉及到

多個架構,當某一個使用者被轉換成一種資料庫角色的時候,假如這個使用者本身不擁有某一個架構而該資料庫角色擁有,那它當它對那個架構進行操作的時候就會出錯。

角色,角色意味著一種身份,在資料庫伺服器裡是對一系列許可權的組織。

伺服器登入名,指有許可權登入到某伺服器的使用者,可以在有許可權的情況下建立新的登入名,超級管理員的登入名是sa

伺服器角色,指一組固定的伺服器使用者,預設有9組;

  • 登入名一定屬於某些角色,預設為public
  • 伺服器角色不容許更改
  • 登入後也不一定有許可權操作資料庫

資料庫使用者,指有許可權能操作資料庫的使用者;

資料庫角色,指一組固定的有某些許可權的資料庫角色;

資料庫架構,指資料庫物件的容器;

  • 資料庫使用者對應於伺服器登入名以便登入者可以操作資料庫
  • 資料庫角色可以新增,可以定製不同許可權  
  • 資料庫架構,類似於資料庫物件的名稱空間,使用者通過架構訪問資料庫物件

登入名與使用者在伺服器級是一對多的,而在資料庫裡是一對一的。比如說Server這個伺服器有4個數據庫,DB1,DB2,DB3,DB4,每個資料庫都有一個使用者USER1,USER2,USER3,USER,在建立一個登入名my的時候可以通過使用者對映的操作,為這個登入名在每一個具體的資料庫中指定使用者,比如可以如下指定my在DB1中的使用者是USER1,它是在使用資料庫的時候是唯一的,my在不能再DB1中切換使用者,除非重新指定它對DB1資料庫的使用者對映。

使用者一般是受許可權管理的,在新建一個使用者的時候是這樣的:

需要指定它的登入名,這也是對映操作的一部分,同時可以指定它的預設架構,如不指定就是dbo,也可以指定它擁有的其它架構和角色成員,不過沒有預設資料庫角色。

下面看看新建一個角色:

在新建的時候可以指定這個角色擁有那些架構,但是這些結構必須是這個資料庫裡面的,預設架構為當前使用者使用的架構,比如當前使用者的架構是dbo,則在角上許可權定義時所使用的預設架構就是dbo,當然也可以指定其它的架構。