SQL Server安全概念簡析

I. 登陸名與用戶名html

登陸名: 訪問數據庫服務器的帳戶。登陸名能夠登陸到服務器,但不能直接訪問數據庫內容。數據庫鏈接串中的用戶名應配置爲登陸名。每一個登陸名的定義存放在master數據庫的syslogins表中。sql

用戶: 訪問數據庫內容的帳戶。一個登陸名能夠映射數據庫中的一個用戶(且僅能映射一個),從而使登陸名具備了訪問數據庫的權限。用戶定義信息存放在每一個數據庫的sysusers表中。數據庫

SQLSERVER把登陸名與用戶的關係稱爲映射。用登陸名登陸SQLSERVER後,在訪問各個數據庫時,SQLSERVER會自動查詢此數據庫中是否存在與此登陸名映射的用戶名,若存在就使用此用戶的權限訪問此數據庫,若不存在就是用guest用戶訪問此數據庫。服務器

能夠把一個數據庫服務器理解爲一個大樓,而每一個數據庫就是一個房間。因此登陸名就是進入大樓的鑰匙,而用戶是進入房間的鑰匙。有人會質疑,爲何要設兩把鑰匙,而不是直接分配房間的鑰匙。有一個不錯的解釋是:「大樓的鑰匙能夠在大樓內創建房間/刪除房間,以及配置整個大樓的安保等功能。而用戶只能對本身的房間進行收拾。」架構

參見:
http://www.cnblogs.com/ibrahim/archive/2010/06/21/sqlserver_loginname_username.html
http://bbs.csdn.net/topics/360239408?page=1sqlserver

II. 角色與架構.net

服務器角色: 對一組服務器操做權限的定義。一個登陸名具備某一服務器角色就意味着此登陸名具備此角色所定義的操做權限。server

數據庫角色: 對一組數據庫操做權限的定義。一個用戶具備某一數據庫角色就意味着此用戶具備此角色所定義的操做權限。htm

架構: 指數據庫對象的容器,至關於數據庫對象的命名空間。用戶經過架構訪問數據庫對象。(在訪問數據庫對象時若是不加構架限制,則缺省設爲「dbo」。)對象

一個數據庫角色或用戶擁有某一架構意味着此角色或用戶有權訪問此架構下的全部對象。系統預約義的每一個數據庫角色(除public)都擁有一個同名的架構,且此擁有關係不能修改。

參見:
http://www.cnblogs.com/50614090/archive/2010/12/16/1908636.html

 

參見一篇討論較充分的文章(後面有一些重要的腳本命令說明):
http://blog.csdn.net/yu0089/article/details/9195295

相關文章
相關標籤/搜索