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,當然也可以指定其它的架構。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM