《數據庫》第九講(二)SQLServer2000數據庫的安全性管_第1頁
《數據庫》第九講(二)SQLServer2000數據庫的安全性管_第2頁
《數據庫》第九講(二)SQLServer2000數據庫的安全性管_第3頁
《數據庫》第九講(二)SQLServer2000數據庫的安全性管_第4頁
《數據庫》第九講(二)SQLServer2000數據庫的安全性管_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第九講第九講 SQL Server 2000數據庫的安全性管理數據庫的安全性管理教學內容教學內容l對任何企業組織來說,數據的安全性最為重對任何企業組織來說,數據的安全性最為重要要lSQL Server 2000 提供了內置的安全性和數據提供了內置的安全性和數據保護,管理有效容易保護,管理有效容易本講將介紹本講將介紹lSQL Server 2000的安全性機制l數據庫登錄l表的用戶l角色管理l權限管理學習目標及重點學習目標及重點學習目標學習目標lSQL Server的安全性機制的安全性機制l管理服務器的安全性管理服務器的安全性lSQL Server數據庫的安全性數據庫的安全性l表的安全性表的安全

2、性重點與難點重點與難點lSQL Server 2000的身份驗證的身份驗證l創建和管理用戶登錄的方法創建和管理用戶登錄的方法l使用固定服務器角色的方法使用固定服務器角色的方法l管理數據庫權限的方法管理數據庫權限的方法9.1 SQL Server的帳號和存取權限的帳號和存取權限n數據的數據的安全性安全性是指保護數據以防止因不是指保護數據以防止因不合理的使用而造成數據的泄密和破壞,合理的使用而造成數據的泄密和破壞,這就要采取一定的安全保護措施。這就要采取一定的安全保護措施。n在數據庫管理系統中,用在數據庫管理系統中,用檢查口令檢查口令等手等手段來檢查用戶身份,通過檢查的用戶才段來檢查用戶身份,通過

3、檢查的用戶才能進入數據庫系統中。能進入數據庫系統中。n當用戶對數據庫執行操作時,系統自動當用戶對數據庫執行操作時,系統自動檢查用戶是否有權限執行這些操作。檢查用戶是否有權限執行這些操作。 9.1.1 SQL Server的驗證模式的驗證模式 nSQL Server對用戶的訪問進行兩個階段的檢驗:對用戶的訪問進行兩個階段的檢驗:(1)驗證階段()驗證階段(Authentication):):l用戶在SQL Server上獲得對任何數據庫的訪問權限之前,必須登錄到SQL Server上,并且被認為是合法的。lSQL Server或者Windows NT/2000對用戶進行驗證。l如果驗證通過,用戶

4、就可以連接到SQL Server上,否則,服務器將拒絕用戶登錄。從而保證了系統安全。(2)許可確認階段()許可確認階段(Permission Validation):):l用戶驗證通過后,登錄到SQL Server上,系統檢查用戶是否有訪問服務器上數據的權限。n在驗證階段,系統是對用戶登錄進行驗證。在驗證階段,系統是對用戶登錄進行驗證。nSQL Server和和Windows NT/2000是結合在一起的,因此有是結合在一起的,因此有兩種驗證模式:兩種驗證模式:Windows驗證模式驗證模式和和混合驗證模式混合驗證模式(3 3)設置驗證模式)設置驗證模式9.2 帳號和角色帳號和角色 n在在SQ

5、L Server中,帳號有兩種:中,帳號有兩種:l一種是登錄服務器的登錄帳號(login name)l一種是使用數據庫的用戶帳號(user name)。n登錄帳號是指能登錄到登錄帳號是指能登錄到SQL Server的帳號,屬的帳號,屬于服務器層面,它本身并不能讓用戶訪問服務于服務器層面,它本身并不能讓用戶訪問服務器中的數據庫器中的數據庫n登錄者要使用服務器中的數據庫,必須要有登錄者要使用服務器中的數據庫,必須要有用戶帳號才能夠存取數據庫。用戶帳號才能夠存取數據庫。l如同公司門口先刷卡進入(登錄服務器),然后再拿鑰匙打開自己的辦公室(進入數據庫)一樣。用戶帳號用戶帳號n用戶名用戶名在特定的數據庫

6、內創建,并關聯在特定的數據庫內創建,并關聯一個一個登錄名登錄名(當一個用戶創建時,必須(當一個用戶創建時,必須關聯一個登錄名)。關聯一個登錄名)。n用戶定義的信息存放在服務器的每個數用戶定義的信息存放在服務器的每個數據庫的據庫的sysusers表中,用戶沒有密碼同表中,用戶沒有密碼同它相關聯。它相關聯。n通過授權給用戶指定用戶可以訪問的數通過授權給用戶指定用戶可以訪問的數據庫對象權限據庫對象權限9.2.1 9.2.1 服務器的登錄帳號服務器的登錄帳號1使用企業管理器查看登錄帳號使用企業管理器查看登錄帳號這兩個是什么用戶?n其中其中:BUILTINAdministrators、域名域名Admin

7、istrator、sa是默認的登錄帳號,它們的含義如下:是默認的登錄帳號,它們的含義如下:(1) BUILTINAdministrators:凡是Windows NT Server/2000中Administrators組的帳號都允許登錄SQL Server。(2)域名Administrator:允許NT Server的Administrator帳號登錄。(3) sa:超級管理員帳號,允許SQL Server的系統管理員登錄,此SQL Server的管理員不一定是Windows NT Server/2000的管理員。默認登錄帳號默認登錄帳號2 使用存儲過程查看登錄帳號使用存儲過程查看登錄帳號n

8、角色(角色(role)是一組用戶所構成的組,可是一組用戶所構成的組,可分為分為服務器角色服務器角色與與數據庫角色數據庫角色。n服務器角色服務器角色是負責管理與維護是負責管理與維護SQL Server的組,一般只會指定需要管理服務器的登的組,一般只會指定需要管理服務器的登錄帳號屬于服務器角色。錄帳號屬于服務器角色。9.2. 2 角色角色固定的服務器角色固定的服務器角色 sysadmin:全稱為System Administrators,可以在SQL Server中執行任何活動。 serveradmin:全稱為Server Administrators,可以設置服務器范圍的配置選項,關閉服務器。

9、setupadmin:全稱為Setup Administrators,可以管理鏈接服務器和啟動過程。 securityadmin:全稱為Security Administrators,可以管理登錄和創建數據庫的權限,還可以讀取錯誤日志和更改密碼。 processadmin:全稱為Process Administrators,可以管理在SQL Server中運行的進程。 dbcreator:全稱為Database Creators,可以創建、更改和除去數據庫。 diskadmin:全稱為Disk Administrators,可以管理磁盤文件。 bulkadmin:全稱為Bulk Insert

10、Administrators,可以執行BULK INSERT(大容量插入)語句。n注:屬于注:屬于Windows NT/2000 Administrators組的帳號,在組的帳號,在SQL Server中被自動中被自動設置為設置為sysadmin服務器角色。服務器角色。2. 利用企業管理器創建一個登錄帳號利用企業管理器創建一個登錄帳號3. 利用存儲過程創建一個登錄帳號利用存儲過程創建一個登錄帳號語法:語法:EXEC sp_addlogin登錄帳號名稱登錄帳號名稱,密碼密碼,默認數據庫名默認數據庫名,使用的語言使用的語言注:注:(1)使用的語言如果指定為NULL,則表示使用系統默認語言。(2)此

11、存儲過程只是添加了一個登錄帳號,該帳號只能登錄到SQL Server,并不對某特定數據庫具有存取權限,所以,還需要利用sp_adduser存儲過程將此登錄帳號加入到指定數據庫中才行。EXEC sp_addlogin Mike,m1934,SchoolManage,NULLl此語句建立了一個名稱為Mike的登錄帳號。n此語句將此語句將Mike登錄帳號加入到數據庫登錄帳號加入到數據庫SchoolManage中。中。 n USE SchoolManageEXECsp_adduserMike4.使用企業管理器使用企業管理器更改登錄帳號屬性更改登錄帳號屬性使用存儲過程使用存儲過程sp_password可

12、改變登錄帳號的密碼可改變登錄帳號的密碼nEXEC sp_password 舊密碼,新密碼,登錄帳號名稱nEXEC sp_password m1934,mike1934,Miken此語句將Mike帳號的密碼由原來的m1934改為mike1934使用存儲過程將登錄帳號加入服務器的角色使用存儲過程將登錄帳號加入服務器的角色n使用存儲過程使用存儲過程sp_addsrvrolemembersp_addsrvrolemember可以將登錄帳號加可以將登錄帳號加入服務器的角色中。入服務器的角色中。n格式格式:EXEC sp_addsrvrolemember:EXEC sp_addsrvrolemember登

13、錄帳號登錄帳號,服服務器角色名稱務器角色名稱n示例示例: EXEC : EXEC sp_addsrvrolememberMike,dbcreatorsp_addsrvrolememberMike,dbcreator刪除登錄刪除登錄方法方法1:使用企業管理器:使用企業管理器方法方法2:使用存儲過程刪除登錄:使用存儲過程刪除登錄n使用存儲過程使用存儲過程sp_droplogin可刪除某一登錄帳號。可刪除某一登錄帳號。n格式格式USE 數據庫數據庫EXECsp_droplogin 登錄帳號登錄帳號n示例示例lUSE SchoolManagelEXEC sp_droplogin Miken一個一個SQ

14、L Server的登錄帳號只有成為該數據庫的用戶時的登錄帳號只有成為該數據庫的用戶時,對該數據庫才有訪問權限。,對該數據庫才有訪問權限。n在安裝在安裝SQL Server后,默認數據庫如:后,默認數據庫如:master、tempdb、msdb等包含兩個用戶:等包含兩個用戶:dbo和和guest。n任何一個登錄帳號都可以通過任何一個登錄帳號都可以通過guest用戶帳號來存取相應用戶帳號來存取相應的數據庫。的數據庫。n當新建一個數據庫時,默認只有當新建一個數據庫時,默認只有dbo用戶帳號而沒有用戶帳號而沒有guest用戶帳號。用戶帳號。n每個登錄帳號在一個數據庫中只能有一個用戶帳號,但每個登錄帳號

15、在一個數據庫中只能有一個用戶帳號,但每個登錄帳號可以在不同的數據庫中各有一個用戶帳號每個登錄帳號可以在不同的數據庫中各有一個用戶帳號n如果在新建登錄帳號過程中,指定對某個數據庫具有存如果在新建登錄帳號過程中,指定對某個數據庫具有存取權限,則在該數據庫中將自動創建一個與該登錄帳號取權限,則在該數據庫中將自動創建一個與該登錄帳號同名的用戶帳號。同名的用戶帳號。 數據庫的用戶數據庫的用戶n(1)master和和tempdb數據庫中的數據庫中的guest用戶帳號用戶帳號不能刪除,而其他數據庫中的不能刪除,而其他數據庫中的guest用戶帳號可以用戶帳號可以刪除。刪除。n(2)登錄帳號具有對某個數據庫的訪

16、問權限,)登錄帳號具有對某個數據庫的訪問權限,并不表示該登錄帳號對該數據庫具有存取的權限并不表示該登錄帳號對該數據庫具有存取的權限。如果要對數據庫的對象進行插入、更新等操作。如果要對數據庫的對象進行插入、更新等操作,還需要設置用戶帳號的權限。,還需要設置用戶帳號的權限。 用戶帳號用戶帳號使用企業管理器查看用戶使用企業管理器查看用戶利用存儲過程查看用戶利用存儲過程查看用戶使用企業管理器創建數據庫的用戶使用企業管理器創建數據庫的用戶使用存儲過程使用存儲過程創建數據庫的用戶創建數據庫的用戶n語法語法USE數據庫名EXEC sp_adduser登錄帳號,用戶帳號,所屬的數據庫角色n示例示例USE Sc

17、hoolManageEXEC sp_addusersql03,sql003,db_owner9.3 權限權限9.3.1 權限分類權限分類(1)對象權限對象權限l是執行與表、視圖和存儲過程等數據庫對象是執行與表、視圖和存儲過程等數據庫對象有關的行為的權限。數據庫對象的所有者可有關的行為的權限。數據庫對象的所有者可以將對象權限授予指定的數據庫用戶。以將對象權限授予指定的數據庫用戶。l對于表和視圖,所有者可以授予對于表和視圖,所有者可以授予INSERT、UPDATE、DELETE、SELECT和和REFERENCES權權限,或授予限,或授予ALL權限。權限。l存儲過程的所有者可以授予其執行(存儲過程

18、的所有者可以授予其執行(EXECUTE)權限。)權限。(2)語句權限)語句權限是對用于創建數據庫和數據庫中的對象(如表、視圖是對用于創建數據庫和數據庫中的對象(如表、視圖和存儲過程等)的和存儲過程等)的T-SQL語句所擁有的權限。包括:語句所擁有的權限。包括:lCreate database:創建數據庫:創建數據庫lCreate table:創建表:創建表lCreate view:創建視圖:創建視圖lCreate rule:創建規則:創建規則lCreate default:創建缺省:創建缺省lCreate procedure:創建存儲過程:創建存儲過程lCreate index:創建索引:創建

19、索引lBackup database:備份數據庫:備份數據庫lBackup log:備份事務日志:備份事務日志(3)暗示性權限)暗示性權限n指由指由SQL Server預定義的服務器角色、預定義的服務器角色、數據庫的所有者和數據庫對象所有者所數據庫的所有者和數據庫對象所有者所擁有的權限。擁有的權限。n如:如:sysadmin固定服務器角色成員可以固定服務器角色成員可以在服務器范圍內從事所有的操作活動,在服務器范圍內從事所有的操作活動,數據庫所有者數據庫所有者dbo可以在數據庫范圍內進可以在數據庫范圍內進行任何操作,數據庫對象的所有者可以行任何操作,數據庫對象的所有者可以對擁有的對象執行一切活動

20、。對擁有的對象執行一切活動。n企業管理器企業管理器用戶帳號用戶帳號鼠標右鍵鼠標右鍵選擇選擇“屬性屬性” ” 打開打開“數據庫用戶屬性數據庫用戶屬性”對話對話框框n“數據庫用戶屬性數據庫用戶屬性”對話框對話框單擊單擊“權限權限” ” 打打開權限設置對話框開權限設置對話框設置數據庫用戶帳號的權限設置數據庫用戶帳號的權限l在“對象”列中,顯示了數據庫中所有的對象,而“所有者”列則顯示了相應對象的所有者。其后的6列則是對數據庫對象的操作,具體含義如下: SELECT:對表或者視圖的查詢INSERT:在表或者視圖中插入記錄UPDATE:對表或者視圖中的數據修改DELETE:刪除表或者視圖中的數據EXEC

21、:執行存儲過程DRI:Declarative Referential Integrity,可對表的外鍵加上限制,以達成表的參照完整性。n對某個數據庫對象而言,如果選中對應的復選框,則表示具有對該對某個數據庫對象而言,如果選中對應的復選框,則表示具有對該對象進行相應操作的權限。對象進行相應操作的權限。n每個復選框具有每個復選框具有3 3種狀態。種狀態。l空白時表示未指定權限,或權限還原到未設置狀態;l當打“”時表示具有該權限;l當打“”時,表示不具有該權限。 設置數據庫用戶帳號的權限設置數據庫用戶帳號的權限利用企業管理器設置權限利用企業管理器設置權限利用查詢分析器查看設置的權限結果利用查詢分析器

22、查看設置的權限結果利用查詢分析器查看設置的權限結果利用查詢分析器查看設置的權限結果為什么不能更新呢?語句權限設置語句權限設置原來是它的原因?9.3.2 管理對象權限管理對象權限SQL Server 可通過兩種途徑:即面向單一用戶和面向數可通過兩種途徑:即面向單一用戶和面向數據庫對象的權限設置,來實現對語句權限和對象權限據庫對象的權限設置,來實現對語句權限和對象權限的管理,從而實現對用戶權限的設定。的管理,從而實現對用戶權限的設定。 Transaction_SQL 語句使用語句使用grant、revoke和和deny三種命三種命令來完成權限的授予、禁止和剝奪。令來完成權限的授予、禁止和剝奪。lG

23、RANT 權限名稱權限名稱,n ON 表名表名|視圖名視圖名|存儲過程名存儲過程名 TO 用戶賬號用戶賬號lDENY 權限名稱權限名稱,n ON 表名表名|視圖名視圖名|存儲過程名存儲過程名 TO 用用戶賬號戶賬號lREVOKE 權限名稱權限名稱,n ON 表名表名|視圖名視圖名|存儲過程名存儲過程名 FROM 用戶賬號用戶賬號如:如:GRANT SELECT ON employee TO Adam,salesmanager,HEADQUARTERSmims9.3.3 管理語句權限管理語句權限n(1)使用企業管理器)使用企業管理器n(2)使用)使用Transact-SQL語句語句 使用使用GR

24、ANT、DENY和和REVOKE語句完成語句語句完成語句權限的授予、禁止和剝奪。權限的授予、禁止和剝奪。lGRANT 語句名稱,n TO 用戶賬號 ,nlDENY 語句名稱,n TO 用戶賬號,nlREVOKE 語句名稱,n FROM 用戶賬號,n權限示例權限示例n如:授予創表權限如:授予創表權限GRANT CREATE TABLE TO Adam,salesmanager,HEADQUARTERSmimsn如:拒絕用戶賬號如:拒絕用戶賬號Adam使用使用CREATE VIEW語句:語句:DENY CREATE VIEW TO Adamn如:刪除一個如:刪除一個DENY權限權限REVOKE A

25、LL FROM AdamEX: GRANTGRANT SELECT ON StudInfo TO publicGO GRANT INSERT, UPDATE, DELETEON StudInfoTO Mary, John, TomGO刪除數據庫用戶帳號刪除數據庫用戶帳號n方法方法1:使用企業管理器:使用企業管理器l企業管理器 “數據庫” “用戶” 鼠標右鍵 “刪除”n方法方法2:使用存儲過程:使用存儲過程n格式格式lUSE 數據庫名lEXEC sp_dropuser用戶帳號n示例示例lUSE SchoolManagelEXEC sp_dropuserZHANGSANn角色角色是一個強大的工具,

26、可以將用戶集中到一個單元是一個強大的工具,可以將用戶集中到一個單元中,然后對該單元應用權限。中,然后對該單元應用權限。n對一個角色授予、拒絕或廢除的權限也適用于該角色對一個角色授予、拒絕或廢除的權限也適用于該角色的任何成員。的任何成員。n和登錄帳號類似,用戶帳號也可以分成組,稱為和登錄帳號類似,用戶帳號也可以分成組,稱為數據數據庫角色庫角色(Database Roles)。)。n數據庫角色應用于單個數據庫。在數據庫角色應用于單個數據庫。在SQL Server中,數據中,數據庫角色可分為兩種:庫角色可分為兩種:l標準角色:由數據庫成員所組成的組,此成員可以是用戶或者其他的數據庫角色。l應用程序角

27、色:用來控制應用程序存取數據庫的,本身并不包括任何成員。 數據庫角色數據庫角色10個個固定的標準角色固定的標準角色npublic角色是最基本的數據庫角色。角色是最基本的數據庫角色。ndb_owner:在數據庫中有全部權限。:在數據庫中有全部權限。ndb_accessadmin:可以添加或刪除用戶:可以添加或刪除用戶ID。ndb_securityadmin:可以管理全部權限、對象所有權、角色:可以管理全部權限、對象所有權、角色和角色成員資格。和角色成員資格。ndb_ddladmin:可以發出:可以發出ALLDDL,但不能發出,但不能發出GRANT(授(授權)、權)、REVOKE或或DENY語句。語句。ndb_backupoperator:可以發出:可以發出DBCC、CHECKPOINT和和BACKUP語句語句ndb_datareader:可以選擇數據庫內任何用戶表中所有數據:可以選擇數據庫內任何用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論