SQL Server 登陸名、服務器角色、用戶名和數據庫角色 --- 解釋

1、基本解釋sql

登陸名:登陸服務器的用戶帳號;數據庫

 

服務器角色:登陸名對該服務器具備的權限,角色分多種的,一個角色能夠有多個登陸名,如操做系統的系統用戶能夠有多個。服務器

 

SQL服務器角色 架構

sysadmin            能夠在 SQL Server 中執行任何活動。 sqlserver

serveradmin       能夠設置服務器範圍的配置選項,關閉服務器。 操作系統

setupadmin        能夠管理連接服務器和啓動過程。 .net

securityadmin    能夠管理登陸和CREATE、DATABASE權限,還能夠讀取錯誤日誌和更改密碼。 日誌

processadmin   能夠管理在 SQL Server 中運行的進程。 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(系統級),具備對全部用戶建立的數據庫中的數據進行一切操做權限。

 

2、詳細解釋

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,固然也能夠指定其它的架構。

相關文章
相關標籤/搜索